AttributeError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_1604\3711692900.py in <module> 12 #读取否定词文件 13 not_word_file = open('E:/data/否定词.txt','r+',encoding='utf-8').read() ---> 14 not_word_list = not_word_file.readlines() 15 not_word_list = [w.strip() for w in not_word_list] 16 #读取程度副词文件 AttributeError: 'str' object has no attribute 'readlines'
时间: 2023-07-15 20:15:48 浏览: 119
解决python多线程报错:AttributeError: Can't pickle local object问题
这个错误提示是因为 `not_word_file` 是一个字符串对象,不支持 `readlines` 方法。可以将 `open()` 方法的模式参数改为 `'r'`,不加 `+`,这样返回的就是一个文件对象,可以直接使用 `readlines()` 方法。修改后的代码如下所示:
```
# 读取否定词文件
not_word_file = open('E:/data/否定词.txt', 'r', encoding='utf-8')
not_word_list = not_word_file.readlines()
not_word_list = [w.strip() for w in not_word_list]
# 读取程度副词文件
degree_word_file = open('E:/data/程度副词.txt', 'r', encoding='utf-8')
degree_word_list = degree_word_file.readlines()
degree_word_list = [w.strip() for w in degree_word_list]
```
注意:在使用完文件对象后,需要调用 `close()` 方法关闭文件,否则可能会造成系统资源浪费和文件损坏等问题。建议使用 `with` 语句来自动管理文件的打开和关闭,如下所示:
```
# 读取否定词文件
with open('E:/data/否定词.txt', 'r', encoding='utf-8') as not_word_file:
not_word_list = not_word_file.readlines()
not_word_list = [w.strip() for w in not_word_list]
# 读取程度副词文件
with open('E:/data/程度副词.txt', 'r', encoding='utf-8') as degree_word_file:
degree_word_list = degree_word_file.readlines()
degree_word_list = [w.strip() for w in degree_word_list]
```
这样可以保证文件在使用完后自动关闭,不需要手动调用 `close()` 方法。
阅读全文