您的位置:首页 > 编程语言 > Python开发

Python2.7.3读取日志信息时发生读取不完整的问题

2013-12-30 13:33 796 查看

 1、问题:File reading problem

OS environment : windows 7
Python version:2.7.3
 
今天在使用Python以文本方式读取一份日志文档时,发生了怪异的问题,26464行的日志文档,程序始终只能读出1980行。尝试io.open方式,加上参数encoding='utf-8'问题依旧。

# certification_result_log -- record the result of certification
certification_result_log = open(r'C:\Users\lenovo\Desktop\Mchip_certification_result.txt','r+')

# log_file -- information source
log_file = open(r'C:\Users\lenovo\Desktop\ATM_BEP_2013-12-24.log','r')
for line in log_file:
certification_result_log.write(line)


在多次使用16进制方式仔细对写入目标文件和源文件进行比较时发现,他们均是在0x1A处被截断,这个时候才想起windows环境下,以文本方式(text mode)读入数据时,0x1A == 26 == ctrl-Z ==
EOF. 程序在读取到0x1A,认为已经读到文件末尾。

相关问题参考:
1)http://stackoverflow.com/questions/7382838/file-reading-problem/
2)http://www.redicecn.com/html/Python/20120110/364.html

2、解决方法:

OS environment : windows 7
Python version:2.7.3

暂时我只想到对源目标文件以二进制方式打开,从而将0x1A这个控制字符的意义忽略掉。
log_file = open(r'C:\Users\lenovo\Desktop\ATM_BEP_2013-12-24.log','rb')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 0x1A EOF windows