2016-10-17 7 views
-3

から特定のテキストを取得:私は何かしたい私は次のパターンのファイル持っている別のファイル(パイソン)

"abcd.asxs." "alphabets" 
"wedf.345.po&%12." "numbers" 
"xyhd.iu*u." "characters" 
"megaten4.koryaku-memo.xyz." "alphabets" 
"adwdbk.uyequ." "alphabets" 
"233432.2321." "numbers" 
"tytqyw.sdfhgwq." "alphabets" 

を:私が書いた何コード

string[0]=abcd.asxs 
string[1]=megaten4.koryaku-memo.xyz 
string[2]=tytqyw.sdfhgwq 
and so on.... 

は次のとおりです。

#!/usr/bin/python 

import re 

important = [] 
needed_categories = ["alphabets"] 

with open('file.txt') as fp: 
     rec=fp.readlines() 

for line in rec: 
     for category in needed_categories: 
       if category in line: 
         important.append(line) 
         break 
print("\n".join(important)) 

出力結果:

"abcd.asxs" "アルファベット"

"megaten4.koryaku-memo.xy。" "アルファベット"

"tytqyw.sdfhgwq" 「アルファベット」あなたのコードのための

+0

探しているパターンは何ですか?あなたが望む出力は何ですか? – MooingRawr

答えて

0

ポイント:

  • あなたが直接ファイルハンドルを使用して行ごとに繰り返すことができます。リストにfp.readlines()を使用してファイルデータを保存してから、繰り返し処理する必要はありません。
  • 必要なカテゴリが見つかったら、完全な行を直接追加しています。だからあなたは間違った出力を得ている。行を分割し、最初の要素のみを保存する必要があります。
  • breakを使用した理由を理解できませんでした。

ワーキングコード:

important = [] 
needed_categories = ["alphabets"] 

with open('a.txt') as fp: 
    for line in fp: 
     temp = [] 
     for category in needed_categories: 
      if category in line: 
       temp = line.split() 
       important.append(temp[0].replace('"','').strip(".")) 
print((important) 

出力:

C:\Users\dinesh_pundkar\Desktop>python c.py 
['abcd.asxs', 'megaten4.koryaku-memo.xyz', 'adwdbk.uyequ', 'tytqyw.sdfhgwq'] 

C:\Users\dinesh_pundkar\Desktop> 
+0

動作しますが、私には必要ありません。最後に私はそれらのそれぞれをリストの単一のインデックスとして欲しいので、forループを実行することができます。 – Harsh

+0

のような何か: が重要[0] = abcd.asxs 重要[1] = megaten4.koryaku-memo.xyz 重要[2] = adwdbk.uyequ 重要[3] = tytqyw.sdfhgwq – Harsh

+0

@Harsh - チェック更新されたコード。削除された '。'終わりから。 –

0

変更important.append(line)へ:

if line.strip().endswith('"alphabets"'): important.append(line.split(' ')[0].strip('"').strip('''))

関連する問題