看到以前limod写的一篇文章,
说python读纯文本已经将\r,\r\n,\n全部用\n来处理了。但我的系统中好像并没有这样。
我在ubuntu下面,Python 2.6.4
读写方式如下:
>>> data = open('dosfile.txt','r').read()
>>> print data
结果看到换行还是\r\n.
这样,我处理文本时如果想通过\n\n(两个换行)来作为分段的话,对dos格式的无效。
items = data.split('\n\n')就并不能达到我想分的段。
lines = data.splitline()倒能正确处理\r\n为\n,分行正确.但这不是我想要的。
执行:
if hasattr(open, 'newlines'):
print 'We have universal newline support'
我的没打印,说明没有设置open的
universal newline support
但不知在哪里设。
所以我用
open('dostext.txt','rU').read()解决了该问题。
在打开参数中,'rb'肯定是不会转的,'rU'是会转的。U不能和+,w等mode参数配。
==========
参考:
http://en.wikipedia.org/wiki/Newline
http://www.python.org/dev/peps/pep-0278/
http://bugs.python.org/issue6759
分享到:
相关推荐
【dos2unix_6.0.3】是一个用于在不同操作系统之间进行文本文件格式转换的实用程序,尤其针对从DOS或Windows系统到UNIX或Linux系统的情况。这个工具的主要功能是将那些使用CRLF(回车换行)作为行结束符的DOS/Windows...
【标题】dos2unix-5.3-win32.zip是一个针对Windows操作系统的压缩包,它包含了一款名为dos2unix的工具,该工具主要用于在Windows和Linux之间进行文本格式的转换。 【描述】dos2unix的主要功能是将Windows环境下创建...
标题中的“dos2unix PyYAML cheettemplate”提到了三个关键组件,它们分别是...总的来说,这个压缩包提供了一个包含dos2unix、PyYAML和Cheetah的环境,适合于需要跨平台文本处理、YAML配置管理和动态文本生成的项目。
"ChangeFileFormat.py" 是一个Python脚本,提供了更灵活和强大的文件格式转换功能。Python中可以使用内置的`open()`函数配合不同的模式来读写文件,并通过操作字符串来改变行结束符。例如,可以使用以下代码将LF转换...
在计算机科学领域,文本处理和数据格式化是基础且关键的部分。其中,“回车”(Carriage Return,CR)和“换行”(Line Feed,LF)是两种用于表示文本行结束并开始新行的控制字符,它们在不同的操作系统中扮演着重要...
Python中的`universal_newlines`模式就是一个很好的例子,它允许读取文本时自动识别CR、LF和CRLF,并将它们统一为Python内部使用的"\n"。 在文件系统层面,一些具有高级功能的操作系统允许用户设置文件的行尾表示,...
此外,Notepad3 具有以下功能:代码折叠,括号匹配,自动缩进,字自动完成,转换各种格式(ASCII,UTF-8和UTF-16)之间的字符编码,换行格式转换(在 DOS 之间(CR/LF),Unix(LF)和 Macintosh(CR)格式),多个...
在这个例子中,我们可能正在处理一个基于UART的串口通信。 2. **字符输出函数`putchar()`**: `putchar()`函数是C语言中用于向标准输出设备(通常是显示器)发送一个字符的函数。在给定的代码中,它被重定义为`void...