2

我有要转换为 Unix 格式的文件。选择python转换方式我可能面临的差异/问题是什么:

import sys
filename = sys.argv[1]
text = open(filename, 'rb').read().replace('\r\n', '\n')
open(filename, 'wb').write(text)

而不是:在子进程中调用 dos2unix Unix 命令

谢谢 !

4

1 回答 1

1

来自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

于 2016-04-01T10:15:03.940 回答