【发布时间】:2020-05-01 15:33:10
【问题描述】:
我正在访问 ftp 服务器上的数据集。下载数据后,我使用pandas 将其读取为csv,但出现编码错误。该文件具有csv 文件扩展名,但在我用MS Excel 打开文件后,数据为Unicode Text 格式。我想转换以 Unicode 文本格式存储的那些数据集。我怎样才能做到这一点?有什么想法可以完成吗?
我的尝试:
from ftplib import FTP
import os
def mydef():
defaultIP=''
username='cat'
password='cat'
ftp = FTP(defaultIP,user=username, passwd=password)
ftp.dir()
filenames=ftp.nlst()
for filename in files:
local_filename = os.path.join('C:\\Users\\me', filename)
file = open(local_filename, 'wb')
ftp.retrbinary('RETR '+ filename, file.write)
file.close()
ftp.quit()
然后我尝试了这个以获得正确的编码:
mydef.encode('utf-8').splitlines()
但是这个对我不起作用。我用this solution
以上代码的输出:
这是上面代码的输出sn-p:
b'\xff\xfeF\x00L\x00O\x00W\x00\t\x00C\x00T\x00Y\x00_\x00R\x00P\x00T\x00\t\x00R\x00E\x00P\x00O\x00R\x00T\ x00E\x00R\x00\t\x00C\x00T\x00Y\x00_\x00P\x00T\x00N\x00\t\x00P\x00A\x00R\x00T\x00N\x00E\x00R\x00\t\x00C\x00O\x00M\ x00M\x00O\x00D\x00I\x00T\x00Y\x00\t\x00D\x00E\x00S\x00C\x00R\x00I\x00P\x00T\x00I\x00O\x00N\x00\t'
预期输出
此数据集的预期输出应该是普通的csv 数据,例如常见的贸易数据,但编码对我不起作用。
我使用不同的编码来正确转换csv 格式数据,但它们都不适合我。我怎样才能使它工作?有什么想法可以完成吗?谢谢
【问题讨论】:
-
如果是 CSV 文件,然后在普通文本编辑器中打开它,看看你有什么。它看起来不像 CSV 文件。或者它可能不使用
utf-8,而是使用其他编码 - 即。utf-16。 `utf-16 有时在 Windows 上使用。
标签: python csv python-unicode