在 Linux 上使用 Python 读取文件(UTF-8 Unicode 文本、csv)时,可以使用:
- csv.reader()
- 文件()
某些列的值的第一个字符为零(输入中没有零),其他列的值为零,在使用 Geany 或任何其他编辑器查看文件时看不到这些零。例如:
输入
10016;9167DE1;Tom;Sawyer ;Street 22;2610;Wil;;378983561;tom@hotmail.com;1979-08-10 00:00:00.000;0;1;Wil;081208608;NULL;2;IZMH726;2010-08-30 15:02:55.777;2013-06-24 08:17:22.763;0;1;1;1;NULL
输出
10016;9167DE1;Tom;Sawyer ;Street 22;2610;Wil;;0378983561;tom@hotmail.com;1979-08-10 00:00:00.000;0;1;Wil;081208608;NULL;2;IZMH726;2010-08-30 15:02:55.777;2013-06-24 08:17:22.763;0;1;1;1;NULL
请参阅 378983561 > 0378983561 阅读:
f = file('/home/foo/data.csv', 'r')
data = f.read()
split_data = data.splitlines()
lines = list(line.split(';') for line in split_data)
print data[51220][8]
>>> '0378983561' #should have been '478983561' (reads like this in Geany etc.)
与 csv.reader() 的结果相同。
帮我解开这个谜,这可能是什么原因?它可能与编码/解码有关吗?