gpt4 book ai didi

Python 从文件中读取并保存到 utf-8

转载 作者:IT老高 更新时间:2023-10-28 21:42:04 28 4
gpt4 key购买 nike

我在读取文件、处理字符串和保存到 UTF-8 文件时遇到问题。

代码如下:

try:
filehandle = open(filename,"r")
except:
print("Could not open file " + filename)
quit()

text = filehandle.read()
filehandle.close()

然后我对变量文本进行一些处理。

然后

try:
writer = open(output,"w")
except:
print("Could not open file " + output)
quit()

#data = text.decode("iso 8859-15")
#writer.write(data.encode("UTF-8"))
writer.write(text)
writer.close()

这完美地输出了文件,但根据我的编辑器,它在 iso 8859-15 中这样做。由于同一个编辑器将输入文件(在变量文件名中)识别为 UTF-8,我不知道为什么会发生这种情况。据我的研究表明,注释行应该可以解决问题。但是,当我使用这些行时,生成的文件主要在特殊字符中出现乱码,带有波浪号的单词作为文本是西类牙语。我真的很感激任何帮助,因为我很难过......

最佳答案

使用带有 encoding 参数的 open 在程序的 I/O 边界处处理与 Unicode 之间的文本。确保使用正在读取的文件的(希望记录在案的)编码。默认编码因操作系统而异(具体而言,locale.getpreferredencoding(False) 是使用的编码),因此我建议始终明确使用 encoding 参数以实现可移植性和清晰性(Python以下3种语法):

with open(filename, 'r', encoding='utf8') as f:
text = f.read()

# process Unicode text

with open(filename, 'w', encoding='utf8') as f:
f.write(text)

如果仍在使用 Python 2 或为了兼容 Python 2/3,io 模块实现 open 的语义与 Python 3 的 open 相同并且存在于两个版本中:

import io
with io.open(filename, 'r', encoding='utf8') as f:
text = f.read()

# process Unicode text

with io.open(filename, 'w', encoding='utf8') as f:
f.write(text)

关于Python 从文件中读取并保存到 utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19591458/

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