我有要转换为Unix格式的文件。 选择python转换方式可能会遇到什么差异/问题:
import sys
filename = sys.argv[1]
text = open(filename, 'rb').read().replace('\r\n', '\n')
open(filename, 'wb').write(text)
而不是:在子进程中调用dos2unix Unix命令?
谢谢!
答案 0 :(得分:1)
来自man dos2unix
:
Dos2unix软件包包括实用程序" dos2unix"和" unix2dos"至 将DOS或Mac格式的纯文本文件转换为Unix格式和副本 反之亦然。
在DOS / Windows文本文件中,换行符也称为换行符 两个字符的组合:回车符(CR)后跟a 换行(LF)。在Unix文本文件中,换行符是单个字符: 换行(LF)。在Mac文本文件中,在Mac OS X之前,换行符 是单一回车(CR)字符。如今Mac OS使用Unix 风格(LF)换行。
除了换行符,Dos2unix还可以转换文件的编码。一个 很少有DOS代码页可以转换为Unix Latin-1。和Windows Unicode(UTF-16)文件可以转换为Unix Unicode(UTF-8)文件。
...
-ascii 仅转换换行符。这是默认的转换模式。
dos2unix
因此可以做的不仅仅是转换换行符,但默认行为只是那个。
如果您的文件编码错误,则必须使用dos2unix
进行处理。