我正在尝试打开并读取包含大量文本的.txt文件。下面是我的代码,我不知道如何解决这个问题。任何帮助都将非常感激。
file = input("Please enter a .txt file: ")
myfile = open(file)
x = myfile.readlines()
print (x)
当我输入.txt文件时,这是完整的错误消息显示在下面:
line 10, in <module> x = myfile.readlines()
line 26, in decode return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 318: ordinal not in range(128)
答案 0 :(得分:7)
我没有使用编解码器,而是通过这种方式解决:
def test():
path = './test.log'
file = open(path, 'r+', encoding='utf-8')
while True:
lines = file.readlines()
if not lines:
break
for line in lines:
print(line)
你必须准确地给出编码参数。
答案 1 :(得分:1)
您也可以尝试编码:
with open(file) as f:
for line in f:
line = line.encode('ascii','ignore').decode('UTF-8','ignore')
print(line)
答案 2 :(得分:-1)
@AndriiAbramamov是对的,你的shoud检查这个问题,这是一种你可以打开你的文件的方式,也是在那个链接上
import codecs
f = codecs.open('words.txt', 'r', 'UTF-8')
for line in f:
print(line)
另一种方法是使用正则表达式,因此当您打开文件时,您可以删除任何特殊字符,如双引号等。