首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >codecs.ascii_decode(input,self.errors)[0] UnicodeDecodeError:'ascii‘编解码器无法解码位置318处的字节0xc2 :序数不在范围内(128)

codecs.ascii_decode(input,self.errors)[0] UnicodeDecodeError:'ascii‘编解码器无法解码位置318处的字节0xc2 :序数不在范围内(128)
EN

Stack Overflow用户
提问于 2017-01-07 02:56:06
回答 3查看 10.5K关注 0票数 4

我正在尝试打开并重排包含大量文本的.txt文件。下面是我的代码,我不知道如何解决这个问题。任何帮助都将不胜感激。

代码语言:javascript
复制
file = input("Please enter a .txt file: ")
myfile = open(file)
x = myfile.readlines()
print (x)

当我输入.txt文件时,下面显示了完整的错误消息:

代码语言:javascript
复制
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)
EN

回答 3

Stack Overflow用户

发布于 2017-04-27 00:05:04

我没有使用编解码器,而是这样解决它:

代码语言:javascript
复制
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)

你必须准确地给出编码参数。

票数 7
EN

Stack Overflow用户

发布于 2020-04-25 08:22:50

您还可以尝试编码:

代码语言:javascript
复制
with open(file) as f:
    for line in f: 
         line = line.encode('ascii','ignore').decode('UTF-8','ignore')
         print(line)
票数 1
EN

Stack Overflow用户

发布于 2017-01-15 15:51:04

@AndriiAbramamov是对的,你应该检查这个问题,这是一种方法,你可以打开你的文件,也在该链接上

代码语言:javascript
复制
import codecs
f = codecs.open('words.txt', 'r', 'UTF-8')
for line in f:
    print(line)

另一种方法是使用正则表达式,这样当您打开文件时,您可以删除任何特殊字符,如双引号等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41512427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档