当前位置:  开发笔记 > 编程语言 > 正文

python打开文本文件,每个字符之间有一个空格

如何解决《python打开文本文件,每个字符之间有一个空格》经验,为你挑选了2个好方法。

每当我尝试使用python命令打开.csv文件时, fread = open('input.csv', 'r') 它总是打开文件,每个字符之间都有空格.我猜这是文本文件有问题,因为我可以使用相同的命令打开其他文本文件并正确加载它们.有谁知道为什么文本文件会在python中像这样加载?

谢谢.

更新

好吧,我是在Jarret Hardie的帖子的帮助下得到的

这是我用来将文件转换为ascii的代码

fread = open('input.csv', 'rb').read()
mytext = fread.decode('utf-16')
mytext = mytext.encode('ascii', 'ignore')
fwrite = open('input-ascii.csv', 'wb')
fwrite.write(mytext)

谢谢!



1> Jarret Hardi..:

递归的帖子可能是正确的......文件的内容很可能用多字节字符集编码.事实上,如果是这种情况,您可以在python本身中读取文件而无需先在python之外进行转换.

尝试类似的东西:

fread = open('input.csv', 'rb').read()
mytext = fread.decode('utf-16')

'b'标志确保将文件读取为二进制数据.你需要知道(或猜测)原始编码...在这个例子中,我使用了utf-16,但是使用了YMMV.这会将文件转换为unicode.如果你真的有一个带有多字节字符的文件,我不建议将它转换为ascii,因为你最终可能会丢失很多字符.

编辑:感谢您上传文件.文件前面有两个字节,表示确实使用了宽字符集.如果你很好奇,可以在十六进制编辑器中打开文件,就像有人建议的那样...你会在文本版本中看到像'ID |那样的东西.(等等).点是每个char的额外字节.

上面的代码片段似乎可以在我的机器上使用该文件.



2> recursive..:

该文件以某种unicode编码进行编码,但您将其视为ascii.尝试在python中使用之前将文件转换为ascii.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有