区别dos2Unix和python脚本

时间:2016-04-01 09:17:53

标签: python dos2unix

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

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

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

谢谢!

1 个答案:

答案 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进行处理。