gpt4 book ai didi

Python 将换行符写入文件给出了 ਍一洀攀ऀ䄀爀碗碗猀琀ഀ 而不是换行符

转载 作者:太空宇宙 更新时间:2023-11-04 10:56:22 25 4
gpt4 key购买 nike

这里是整体代码,用于获取一个制表符分隔的文本文件,并创建一个仅包含前两个值的新文件。

    fin = open("in.txt", 'r')
fout = open("out.txt", 'w')

for line in fin:

mrList = line.split('\t')
fout.write(mrList[0] + "\t" + mrList[1])
fout.write('\n')

fin.close()
fout.close()

当它进入时:

Hello world<tab>how are you?<tab>Groovy
Like pie?<tab>I love it<tab>omnomnom
Go pikachu!<tab>Use pound!<tab>She like

结果是:

Hello world<tab>how are you?਍䰀椀欀攀 瀀椀攀㼀ऀ䤀 氀漀瘀攀 椀琀ഀ
Go pikachu!<tab>Use pound!਍

我怀疑 '\n' 不是一个换行符,谷歌搜索它坚持认为“它肯定是\n 0_0”

更新:

由于下面的回答,(谢谢!)在 Linux 命令行上发现:

file peskyInputFile.txt

告诉你编码,还有那个

iconv -c -f utf-16 -t utf-8 peskyInputFile.txt -o outputFile.txt

会将 UTF-16 文件转换为 UTF-8,如果您不需要处理 UTF16,这会避免麻烦

最佳答案

文件以 UTF-16 编码,您正在尝试像 ASCII 一样处理它。当你剥离换行符时,你只消耗一个字节,所以 UTF-16 在下一个换行符之前关闭一个。请参阅“Python thinks a 3000-line text file is one line long? ” 的解决方案和解释。

这就是你正在做的:

>>> b = u'Like pie?\tI love it\tomnomnom'.encode('utf-16le')
>>> s = ('\n' + b + '\0').decode('utf-16le')
>>> print s
䰊椀欀攀 瀀椀攀㼀ऀ䤀 氀漀瘀攀 椀琀ऀ漀洀渀漀洀渀漀洀

关于Python 将换行符写入文件给出了 ਍一洀攀ऀ䄀爀碗碗猀琀ഀ 而不是换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9505971/

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