ptyhon读文件一行长度len为1022,出现\x00

网上查了一下,这是一个为了补齐文件,而使用的特殊符号。如果用python的读文件语句readline(),读出的内容一行的长度手机是1022,而除了文件真实的一行内容,其他的全是\x00,而一般一行的内容是\n结尾的,所以你只需用string类型的find(\n)找到结束位置赋给end;然后再用split功能[0:end],以提取真实内容。

如果你用过滤函数要小心,当心去掉的可以识别的结束符。

另外,字符串里有三个去空格的函数,可以先处理一下。
strip 同时去掉左右两边的空格
lstrip 去掉左边的空格
rstrip 去掉右边的空格

还有需要注意的是,在windows和linux下的区别,两个系统下的文件结尾是有区别的:

Unix系统和Mac系统里,每行结尾只有“<换行>”,即“\n”;而Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;这就产生了一影响,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

这是真实会遇到的问题,我和同事从云中获取的cookie串,经过处理后,就会有^M符号,在核对合法性时一直报错。检查了几遍不知道从哪来的,将文件打印出来也看不出是什么问题。后来打印出文件的acsii码,才发现出来了对应的\r的值,才知道原因。


 

posted on 2013-04-28 17:12  代码王子  阅读(184)  评论(0编辑  收藏  举报

导航