2017-07-20 14 views
0

ファイル内のリスト要素を検索するコードを確認してください。ファイル内のリストの要素を検索する方法

f=open("a.txt","r") 
p=open("b.txt","r") 
disk=[] 
for line in p: 
    line = line.strip() 
    disk.append(line) 


for line in f.readlines(): 
    for word in disk[0]: 
     if word in line: 
      print line 

リストは以下の通りです:

>>> disk 
['5000cca025884d5', '5000cca025a1ee6'] 

私は以下のファイルで、このリストの要素を検索したいが、私は、インデックス0のための出力を得ていないのです。

c0t5000CCA025A1EE6Cd0 <preSUN30G-A2B0-279.40GB> /scsi_vhci/[email protected] 


1. c0t5000CCA025A28FECd0 <preSUN30G-A2B0-279.40GB> i/[email protected] 
2. c0t5000CCA0258BA1DCd0 <HsdfdsSUN30G-A2B0 cyl 46873 alt 2 hd 20 sec 625> i/[email protected] 
3. c0t5000CCA025884D5Cd0 <UN300G cyl 46873 alt 2 hd 20 sec 625> solaris i/[email protected] 
4. c0t5000CCA02592705Cd0 <UN300G cyl 46873 alt 2 hd 20 sec 625> solaris i/[email protected] 
+1

あなたの質問は何ですか?エラーが発生していますか?一般的なコードレビューは、スタックオーバーフローに関するトピック外です。 [help/dont-ask]を参照してください。 –

+0

ありがとう、上記のコードは、ファイル内のリスト要素を検索するのではなく、完成したファイルを表示していることを意味します。 – shunk

+0

あなたの質問を編集して問題の内容を含めることができますか?編集ボタンはタグのすぐ下にあります。 –

答えて

0

コード内でそれ自身を示す唯一のエラーは、このです:私はコメントで述べたように、何これが行うことdiskリストの最初の文字列を取得し、上繰り返しを開始している

for word in disk[0]: 

個々の文字。これにより、a.txtの行のほとんどが複数回印刷されます。

もう1つの考えられる問題は、2つのファイルを後方に取得することです。あなたの問題を再現しようとしていたとき、私はこれを誤ってやりました。ファイルが後方にある場合、a.txtの行はいずれもb.txtにありません(実際には、それらのほとんどはずっと長くなっています)。

ここには、プログラムが動作していることを示すproject on repl.itがあります。

関連する問題