我想使用在Linux上运行的python编写以DOS/Windows行结尾'\r\n‘的文本文件。在我看来,一定有一种比手动在每行末尾添加'\r\n‘或使用行结束转换实用程序更好的方法。理想情况下,我希望能够做一些事情,比如分配给os.linesep,这是我在写文件时想要使用的分隔符。或者在打开文件时指定行分隔符。
发布于 2010-04-15 09:00:32
只需编写一个类文件,它包装另一个类文件,并在写入时将\n
转换为\r\n
。
例如:
class ForcedCrLfFile(file):
def write(self, s):
super(ForcedCrLfFile, self).write(s.replace(r'\n', '\r\n'))
发布于 2010-04-15 09:15:33
对于Python2.6和更高版本,io
模块中的open函数有一个可选的换行符参数,用于指定要使用的换行符。
例如:
import io
with io.open('tmpfile', 'w', newline='\r\n') as f:
f.write(u'foo\nbar\nbaz\n')
将创建一个包含以下内容的文件:
foo\r\n
bar\r\n
baz\r\n
发布于 2010-04-15 08:59:49
您可以查看此PEP以获得一些参考。
更新:
@OP,你可以尝试创建这样的东西
import sys
plat={"win32":"\r\n", 'linux':"\n" } # add macos as well
platform=sys.platform
...
o.write( line + plat[platform] )
https://stackoverflow.com/questions/2642036
复制相似问题