在阅读Python上的文件时,我发现了一个unicodedecoderror。我能做些什么来解决这个问题?

2024-06-14 10:27:35 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我自己的一个项目。这将有助于其他人受益于我正在玩的游戏(攻击立方体)。它的目的是分解日志文件,让用户更容易阅读。

我一直在想这个问题。有人知道怎么解决这个问题吗?目前,我不打算编写/创建文件。我只想修正这个错误。

触发错误的行是一个空行(它在第66346行停止)。

这就是我剧本中的相关部分:

log  =  open('/Users/Owner/Desktop/Exodus Logs/DIRTYLOGS/serverlog_20130430_00.15.21.txt', 'r')
for line in log:

例外情况是:

Traceback (most recent call last):
  File "C:\Users\Owner\Desktop\Exodus Logs\Log File Translater.py", line 159, in <module>
    main()
 File "C:\Users\Owner\Desktop\Exodus Logs\Log File Translater.py", line 7, in main
    for line in log:
  File "C:\Python32\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 3074: character maps to <undefined>

Tags: 文件inpylogfor错误lineusers
1条回答
网友
1楼 · 发布于 2024-06-14 10:27:35

尝试:

enc = 'utf-8'
log = open('/Users/Owner/Desktop/Exodus Logs/DIRTYLOGS/serverlog_20130430_00.15.21.txt', 'r', encoding=enc)

如果不起作用,试试:

enc = 'utf-16'
log = open('/Users/Owner/Desktop/Exodus Logs/DIRTYLOGS/serverlog_20130430_00.15.21.txt', 'r', encoding=enc)

你也可以试试

enc = 'iso-8859-15'

同时尝试:

enc = 'cp437'

威奇很老了,但它也有一个0x81的“ü”字,可以和我在“突击魔方”主页上找到的字符串“ü呃”相吻合。

如果所有的编码都是错误的,试着联系一些开发攻击立方体的人或者在评论中提到的人:看看https://pypi.python.org/pypi/chardet

相关问题 更多 >