2016-05-08 7 views
-1

私はいくつかのフォルダ内のいくつかのテキストファイルに分割されたテキストファイルにコーパスを持っています。私がしているのは、それらのエントロピーを計算することですが、1つのテキストファイルにそれらを連結するのは苦労します。私がしたことは以下のようなものです。複数のテキストファイルを複数のフォルダに読み込む方法は?

filenames = ['BrownA1.txt', 'BrownB1.txt', 'BrownC1.txt'.....] 
with open("C:/Python27/TRAINING.txt", 'w') as outfile: 
    for fname in filenames: 
     with open(fname) as infile: 
      for line in infile: 
       outfile.write(line) 

しかし、この方法には多くの時間がかかります。私は読むために何百ものtxtファイルを持っています。このような 。 C:/ Python27/acq/000916〜012897、C:/ Python27/alum/0009945〜012875、C:/ Python27/barley/0010141〜0011953〜ご覧のように、少なくとも30のtxtファイルです。 効率的な方法はありますか?

答えて

0

os.walkhttps://docs.python.org/2/library/os.html#os.walk)を使用してフォルダツリーに戻ります。もちろん、すべてのテキストファイル(またはテキストファイルを含むフォルダ)を空のルートフォルダに置くと便利です。どうやら、C:\ Python27は最適な選択肢ではないようです。

テキストファイルはC(のサブフォルダ)に回収されているのであれば:

import os 
with open('c:/path/to/output/file.txt', 'w') as outfile: 
    for root, dirs, files in os.walk("c:/path/to/root/folder"): 
     for f in files: 
      if os.path.splitext(f)[-1] == ".txt": 
       with open(os.path.join(root, f), "r") as infile: 
        for line in infile: 
         outfile.write(line) 
:ルート\フォルダを\に\パス\あなたのような何かを行うことができます
関連する問題