lu1*_*her 4 python unix windows line-endings python-3.x
我在一个python3.4脚本的ubuntu下工作,我在Windows中生成参数文件(编码为UTF-8).我必须逐行检查文件(分隔\r\n)知道"行"包含一些'\n'我想要保留的文件.
我的问题是Python的转换文件的"\r\n"到"\n"开时.我试着用不同的模式(开启"r","rt","rU").
我找到的唯一解决方案是以二进制模式而不是文本模式工作,以"rb"模式打开.
有没有办法在没有以二进制模式或正确的方式工作的情况下这样做?
编辑:解决方案:
with open(filename, "r", newline='\r\n') as f:
Run Code Online (Sandbox Code Playgroud)
将newline关键字参数设置为open()to '\r\n',或者可能设置为空字符串:
with open(filename, 'r', encoding='utf-8', newline='\r\n') as f:
Run Code Online (Sandbox Code Playgroud)
这告诉Python只\r\n在行终止符上拆分行; \n在输出中保持不变.如果将其设置为'',\n则也被视为行终止符,但\r\n未被转换为\n.
换行符控制通用换行模式的工作方式(仅适用于文本模式).它可以是
None,'','\n','\r',和'\r\n'.[...]如果是'',则启用通用换行模式,但行结尾将返回给未调换的调用者.如果它具有任何其他合法值,则输入行仅由给定字符串终止,并且行结尾将返回给未调用的调用者.
大胆强调我的.
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |