2016-08-31 3 views
-1

私はPythonで新しくはありませんが、教育を受けたプログラマーではなく、私は自分の作業に非常に頻繁に使用します。あまりにもエレガントなコーディングソリューションではごめんなさい。ファイルbの文字列(ファイルaから)が検索された回数を検索します。ファイルaの各文字列は別々の行にあります

私は、各行に一意の文字列を持つファイル(.txt)を持っています。私は各文字列が別のファイルで何度起こっているか知りたい。私がいる限り、私は「2-177-382」を検索するテキストを養うように動作している、次のビルド:

count = 0 
with open(Input_file_B) as f: 
    for line in f: 
     count += line.count("2-177-382") 
    print count 

これは、その結果:これまでのところ

Number of times: 19 

とても良いです。それを変数で置き換えると、それも機能します。

y="2-177-382" 
count = 0 
with open(Input_file_B) as f: 
    for line in f: 
     count += line.count(y) 
    print count 

これも動作し、結果もで:

Number of times: 19 

しかし、今、私は、ファイルAから抽出したデータでループを使用してYを埋めるためにしたい、これはそれがうまくいかないところです。ファイルAは、次のようになります。

1-1-24 
1-1-25 
1-1-26 
1-1-27 
14-178-370 
5-224-309 
5-226-307 
2-177-382 

私は(私は他のファイルから抽出する方法なし)以下の例のようにこれを示します。

total_A = open(Input_file_A,'r') 
Data_input_file_A = total_A.readlines() 
y = Data_input_file_A[7] 
print y 

での結果:

total_A = open(Input_file_A,'r') 
Data_input_file_A = total_A.readlines() 
y = Data_input_file_A[7] 
count = 0 
with open(Input_file_B) as f: 
    for line in f: 
     count += line.count(y) 
    print count 

結果:回の 数:

2-177-382 

先ほどのコードにこれを送り、文字列、前とも全く同じ0

どうすればいいですか、私を助けてください!

答えて

0

readlines()改行文字は削除されません。 print yの代わりにrepr (y)を実行すると、すべての文字が表示されます。したがって、コードには次のものが必要です。

y = Data_input_file_A[7].rstrip() 
+0

ありがとう、これはまさに問題でした。それは今完璧に動作します! –

関連する問題