2016-09-23 8 views
0

2つのリストを分割して比較し、2つのリストで正常に比較された項目を除いて新しいリストを作成しようとしています。Pythonでファイルを分割する方法

は、だから私はそれらのリストを比較し、list_1エントリなしnew_list2を作りたい List_1.txt =

Failed = abc 
Failed = hfi 
Failed = kdi 

とList_2.txt =

1:1:1 - jdsfjdf 
2:2:2 - iidf 
3:3:3 - abc 
6:3:1 - hfi 
8:2:1 - kdi 
3:1:5 - dua 
3:1:2 - dfh 

を言うことができます。私がいた試した何

treinrit = open('List_1', 'r') 
lijna = treinrit.readlines() 
treinrit.close() 

annuleer_treinrit = open('List_2', 'r') 
lijnb = annuleer_treinrit.readline() 
annuleer_treinrit.close() 

lijsta = [] 
lijstb = [] 

for a in lijna: 
    clean = a.split(' - ') 
    print(lijsta) 

for b in lijnb: 
    lijstb.append(lijnb.split(": ")) 

私はちょうどリストが適切に分割して取得傾けます。私は各ファイルの最後のビットを比較する必要がありますが、私は方法がわかりません。

+0

このページは、SO:http://stackoverflow.com/questions/546508/how-can-i-split- a-file-in-python 希望しますか? –

+0

希望する最終結果を表示できますか? – Hoopdady

+0

@Hoopdady list_2 abc、hfi、kdiなし。 –

答えて

1
with open('File1', 'r') as f1: 
    f1_stored = [] 
    for line in f1: 
     f1_stored.append(line.split('=')[1].strip()) 
    with open('File2', 'r') as f2; 
     output = [] 
     for line in f2: 
      if not any(failed in line for failed in f1_stored): 
       output.append(line) 

この

bad_stuff = [] 
with open('List_1', 'r') as fn: 
    for line in fn: 
     bad_stuff.append(line.split('=')[1].strip()) 


with open('List_2', 'r') as fn: 
    for line in fn: 
     if line.split(':')[1].strip() not in bad_stuff: 
      print(line) 

ようoutput

1

何かリストbad_stuffabcよう=記号(、hfi後最初のファイルからすべての要素を持っているだろうし、あなたがやりたいことにし、 kdi

次に、ファイル番号が:の後の部分がリストにない場合にのみ印刷しますbad_stuff

+0

これは私を助けてくれてありがとうございました。 [1] .stripは正確に何をしていますか? –

+1

'strip()'は先頭と末尾のスペースと改行を削除します。 'right 'を削除する' rstrip() 'のようなコマンドがありますので、テーリングスペースや改行(テレスもlstrip()と同じです)を推測することができます。 –

+0

ああタンクスたくさん!そして[1]?それはスペースや何かを追加しますか? –

関連する問題