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

本文详细介绍了在使用Python读取文件时遇到 符号导致的异常情况,通过使用string find和split功能,以及了解不同操作系统文件结尾的区别,解决了问题。文章还提到了在不同操作系统下文件结尾的差异,以及如何处理这类问题,避免误删关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上查了一下,这是一个为了补齐文件,而使用的特殊符号。如果用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的值,才知道原因。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值