2016-04-01 8 views
0

私はUnix形式に変換するファイルがあります。違いdos2Unixとpythonスクリプト

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

の代わり:サブプロセスにDOS2UNIX Unixコマンドを呼び出す 何が私がPythonの変換方法を選択直面する可能性の違い/問題でしょうか?

ありがとうございます! man dos2unixから

+0

ファイル内の無効なエンコードが、あなたのPythonプログラムを壊す可能性があります。 – tripleee

答えて

0

DOS2UNIXパッケージにはユーティリティ "DOS2UNIX" とUnixのフォーマットとその逆 にDOSやMac形式の 変換プレーンテキストファイルに "unix2dosといった" を含みます。 DOS/Windowsのテキストで

も、改行として知られている改行を、ファイルの2文字の 組み合わせです:キャリッジリターン(CR) ラインフィード(LF)が続きます。 Unixのテキストファイルでは改行は1文字です: 改行(LF)。 Macテキストファイルでは、Mac OS Xより前の改行 は改行文字(CR)を1文字だけ使用していました。現在、Mac OSはUnix スタイル(LF)改行を使用しています。

改行以外にも、Dos2unixはファイルのエンコーディングを変換することもできます。 いくつかのDOSコードページはUnix Latin-1に変換できます。そしてWindows ユニコード(UTF-16)ファイルはUnixユニコード(UTF-8)ファイルに変換できます。

...

-ascii のみ改行を変換します。これがデフォルトの変換モードです。

dos2unixは、改行の変換以外のことも行うことができますが、デフォルトの動作はそれだけです。

ファイルのエンコードが間違っている場合は、dos2unixでも処理する必要があります。

関連する問題