2016-12-06 12 views
1

私はいくつかのテキストファイルを持っています(ここでは2つだけです)、それらをPythonに読み込んで操作したいと思います。私は文字列のリストを格納しようとしています(各単語に1つの文字列、各ファイルに1つの文字列)。 (ファイルはm1.txtとm2.txt命名されている)なぜ私のpythonループが動作しないのですか

dict={'m1':[],'m2':[]} 

for k in files:   
with open(k,'r') as f: 
     for line in f: 
      for word in line.split(): 
       for i in range (1,3): 
        dict['m'+str(i)].append(word) 

このコードではなく、私にそれぞれの単語を与えるの両方のテキストファイル内の単語を組み合わせて終わる :

私のコードは、現在、このようになります。別々にファイルします。最終的に私はたくさんのファイルを読んでいますので、それらのファイルをどのように分けるかについての助けがあれば幸いです。

+1

をあなたが結合することによって何を意味するのですか?あなたは1つの辞書だけを宣言したので、もちろんそれらはすべてその辞書に入るでしょう。ファイルごとに1つずつ、複数の辞書を作成しようとしていますか? – user3030010

+1

また、理論的にm1.txtから 'dict ['m2']' – depperm

+4

に単語を '追加 'しています。組み込みの単語' dict'を変数として使用すると悪い習慣です – MooingRawr

答えて

1

最終的なforループの代替i値で個々のファイルを処理しているときに、各リストを繰り返し開いていました。

はこのような何か試してみてください:

dict={'m1':[],'m2':[]} 

for i, k in enumerate(files):   
    with open(k,'r') as f: 
     for line in f: 
      for word in line.split(): 
       dict['m'+str(i+1)].append(word) 

を私は「そのまま」が、言語のキーワードを使用していないに関する上記のコメントが重要であるあなたのコードを残してきました。

+0

助けてくれてありがとう私の辞書の名前も。 – Dan

1

この例では、動的に(拡張子なし)ファイル名を取得し、辞書に私たちが取り組んでいる場所を示すためにそれを使用しています。

files = ['m1.txt', 'm2.txt']; 
file_store = {'m1':[],'m2':[]} 

for file in files: 
    prefix = (file.split(r'.'))[0] 
    with open(file, 'r') as f: 
     for line in f: 
      for word in line.split(): 
       file_store[prefix].append(word) 
関連する問題