0

フォルダーにかなりの数のファイルを保持しています。今は全部読みたい。それらは異なる形式であり、異なるエンコーディングです。を使用しlistdir/glob.globてリストを見つけることができますがopen/read、異なるエンコーディング用にそれらを処理する方法は?

誰かが私を助けることができれば.私はWindowsでPython3.2を使用しています.

よろしく、Subhabrata Banerjee。

4

3 に答える 3

2

どのファイルがどのエンコーディングであるかがわかっていると仮定して、codecs.open()を使用します。これは通常の open() とほとんど同じように機能しますが、オプションのエンコーディング パラメータを使用します。

どのファイルがどのエンコーディングにあるのかわからない場合は、さらに困難になります。chardetのようなものや、この質問に対する他の回答を試すことができます

于 2012-07-10T17:21:56.157 に答える
1

open(fp)Python でファイルを開く標準的な方法です。http://docs.python.org/library/functions.html#openを参照してください。

開いたら、 http://docs.python.org/library/stdtypes.html#bltin-file-objects.read()で指定されているようにファイルを読み取ることができます

エンコーディングはよりトリッキーになり、各ファイルに使用されているエンコーディングをどのように知っているかに基づいています

于 2012-07-10T17:16:36.807 に答える
0

Jeremiahが(のために)書いたようcodecs.open()に、Python 2に対してopen()は、ModernizedがPython 3に対して行うencodingことを行います。引数は、ファイル内で使用されるエンコーディングを示します。

ただし、重要な違いは、codecs.open()を使用する場合、読み取り行はユニコード文字列であり(書き込み行はユニコード文字列であると予想されます)、単純な古い文字列(つまり、バイトのシーケンス)ではないことです。Python 3の方が自然な感じですが、Python2でもこのように行うことができます。

MarkPilgrimのDiveIntoPython 3第4章を読むことをお勧めします。文字列。

彼の第15章ケーススタディ:chardetをPython 3に移植chardetすると、前述のモジュールがどのように機能するかが説明されます。

于 2012-07-10T21:24:14.677 に答える