したがって、あるファイルのある行の値を別のファイルと一致するように合計/分析したいとします。 私はと比較したい最初のファイルの形式は次のとおりです。Pythonの2つのtsvファイルの行の部分を比較します
Acetobacter cibinongensis Acetobacter Acetobacteraceae
Rhodospirillales Proteobacteria Bacteria
Acetobacter ghanensis Acetobacter Acetobacteraceae Rhodospirillales Proteobacteria Bacteria
Acetobacter pasteurianus Acetobacter Acetobacteraceae Rhodospirillales Proteobacteria Bacteria
そして第二に、ファイルが似ている:私は何をしたいか
Blochmannia endosymbiont of Polyrhachis (Hedomyrma) turneri Candidatus Blochmannia Enterobacteriaceae Enterobacteriales Proteobacteria Bacteria 1990 7.511 14946.9
Blochmannia endosymbiont of Polyrhachis (Hedomyrma) turneri Candidatus Blochmannia Enterobacteriaceae Enterobacteriales Proteobacteria Bacteria 2061 6.451 13295.5
Calyptogena okutanii thioautotrophic gill symbiont Proteobacteria-undef Proteobacteria-undef Proteobacteria-undef Proteobacteria Bacteria 7121 2.466 17560.4
は、最初のファイル内のすべての行を解析し、最初の6つのフィールドが一致する2番目のファイルのすべての行について、種情報に続く3つのフィールドの番号の分析を実行します。次のように
私のコードは次のとおりです。私は私の最初のファイルからの行と種が第二のファイルで見つかった回数を与える願ってい
with open('file1', 'r') as file1:
with open('file2', 'r') as file2:
for line in file1:
count = 0
line = line.split("\t")
for l in file2:
l = l.split("\t")
if l[0:6] == line[0:6]:
count+=1
count = str(count)
print line + '\t' + count +'\t'+'\n'
。 私はおそらくこの分析の特定の部分を行うためのより良い方法があることを知っていますが、私は目的の簡単な例を挙げたいと思いました..とにかく、私は一致を得ることはありません、 0:6] == line [0:6] はTrueです。 アイデアは何ですか? :-S
これは素晴らしく、とてもうまく説明されました。ありがとうJean-Francois! – regant