首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在linux上使用python编写以DOS行结尾的文本文件

在linux上使用python编写以DOS行结尾的文本文件
EN

Stack Overflow用户
提问于 2010-04-15 08:55:14
回答 5查看 40.7K关注 0票数 21

我想使用在Linux上运行的python编写以DOS/Windows行结尾'\r\n‘的文本文件。在我看来,一定有一种比手动在每行末尾添加'\r\n‘或使用行结束转换实用程序更好的方法。理想情况下,我希望能够做一些事情,比如分配给os.linesep,这是我在写文件时想要使用的分隔符。或者在打开文件时指定行分隔符。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-15 09:00:32

只需编写一个类文件,它包装另一个类文件,并在写入时将\n转换为\r\n

例如:

代码语言:javascript
复制
class ForcedCrLfFile(file):
    def write(self, s):
        super(ForcedCrLfFile, self).write(s.replace(r'\n', '\r\n'))
票数 1
EN

Stack Overflow用户

发布于 2010-04-15 09:15:33

对于Python2.6和更高版本,io模块中的open函数有一个可选的换行符参数,用于指定要使用的换行符。

例如:

代码语言:javascript
复制
import io
with io.open('tmpfile', 'w', newline='\r\n') as f:
    f.write(u'foo\nbar\nbaz\n')

将创建一个包含以下内容的文件:

代码语言:javascript
复制
foo\r\n
bar\r\n
baz\r\n
票数 86
EN

Stack Overflow用户

发布于 2010-04-15 08:59:49

您可以查看此PEP以获得一些参考。

更新:

@OP,你可以尝试创建这样的东西

代码语言:javascript
复制
import sys
plat={"win32":"\r\n", 'linux':"\n" } # add macos as well
platform=sys.platform
...
o.write( line + plat[platform] )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2642036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档