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