返回信息流求论坛上python大神指点,写的一个很简单的程序竟然出问题了。[ema13]
程序 python3.3写的,就是读取文件中数据,使用utf-8格式保存到另一个文件。而且貌似只能用readline()读数据,用readlines()会报错,不知道什么原因。
附件是测试的样本文件。
附代码:
f_src=open('input_test-1.csv',encoding='utf-16')
f_tar=open('out_test.csv','w',encoding='utf-8')
for i in range(100):
#if i>20570:
print(i+1)
str_row=[]
try:
for item in f_src.readline():
str_row.append(item)
#if i>20570:
print(str_row)
except Exception as e:
print(e.reason)
finally:
string_row=''.join(str_row)
#if i>20570:
#print(i+1)
print(string_row[:-1])
#f_tar.write(string_row)
f_src.close()
f_tar.close()
当文件中有100条记录时,结果如下,59以后说编码出错,而85以后直接读不进去数据了。但是当我删除前30条时,用70条记录跑程序,原来报编码错误的记录就可以正常读入了,而不能读入的记录又开始报编码错误了[ema1]
结果(100条):
……省略前面
57
['\ufeff', '2', '0', '1', '4', '0', '7', '0', '7', '0', '0', '3', '5', '5', '7', '2', '2', '2', '0', '0', '0', '0', '0', '0', '5', '0', '2', '0', '\t', 'A', 'O', '#', '9', '1', '3', ',', '2', '0', '7', ',', '4', '6', '0', '0', '0', '4', '9', '1', '2', '9', '2', '6', '7', '1', '8', ',', '8', '6', '1', '3', '8', '0', '0', '7', '6', '9', '5', '0', '0', '\n']
201407070035572220000005020 AO#913,207,460004912926718,8613800769500
58
['\ufeff', '2', '0', '1', '4', '0', '7', '0', '7', '0', '0', '3', '5', '5', '7', '2', '2', '2', '0', '0', '0', '0', '0', '0', '5', '0', '2', '1', '\t', 'A', 'O', '#', '9', '1', '3', ',', '2', '0', '6', ',', '4', '6', '0', '0', '2', '3', '1', '9', '8', '5', '3', '0', '0', '7', '2', ',', '8', '6', '1', '3', '8', '0', '0', '7', '5', '0', '5', '0', '0', '\n']
201407070035572220000005021 AO#913,206,460023198530072,8613800750500
59
illegal UTF-16 surrogate
60
illegal encoding
61
illegal encoding
62
illegal UTF-16 surrogate
……省略中间几行
83
illegal encoding
84
illegal encoding
85
[]
86
[]
87
[]
88
[]
……
附件(208.3KB) input_test-1.csv
这是一条镜像帖。来源:北邮人论坛 / python / #1754同步于 2014/7/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
[问题]求各位大神看看是什么原因
myw
2014/7/20镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
沙发说的有道理,用文本编辑器打开用肉眼看看。
【 在 myw 的大作中提到: 】
: 求论坛上python大神指点,写的一个很简单的程序竟然出问题了。
: 程序 python3.3写的,就是读取文件中数据,使用utf-8格式保存到另一个文件。而且貌似只能用readline()读数据,用readlines()会报错,不知道什么原因。
: 附件是测试的样本文件。
: ...................