gpt4 book ai didi

python - 将shift_jis转换为utf-8

转载 作者:行者123 更新时间:2023-11-30 23:21:00 35 4
gpt4 key购买 nike

我有一堆用shift_jis编码的txt文件,我想将它们转换为utf-8编码,以便特殊字符可以正确显示。以前可能有人问过这个问题,但我似乎无法正确回答。

更新:我更改了代码,因此它首先写入列表,然后写入列表中的内容。

words = []
with codecs.open("dummy.txt", mode='r+', encoding='shiftjis') as file:
words = file.read()
file.seek(0)
for line in words:
file.write(line.encode('utf-8'))

但是现在我遇到运行时错误,程序崩溃了。经过进一步调查,似乎“file.seek(0)”导致了程序崩溃。如果此行被注释掉,程序运行不会出错。我不知道为什么会这样。它是如何导致错误的?

最佳答案

您不能像这样同时读取和写入同一个文件。这就是为什么它不起作用。输入和输出被缓冲,并且文件对象共享相同的文件指针,因此很难预测会发生什么。您要么需要将输出写入不同的文件,要么将整个文件读入内存,关闭它,重新打开它并将其写回。

with codecs.open("dummy.txt", mode='r', encoding='shiftjis') as file:
lines = file.read()

with codecs.open("dummy.txt", mode='w') as file:
for line in lines:
file.write(line)

关于python - 将shift_jis转换为utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25134722/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com