私は必要なファイルを含むフォルダで実行するとうまく動作するpythonスクリプトを持っています。しかし、スクリプトを変更して各サブフォルダに移動し、サブフォルダごとにファイルを使用し、各サブフォルダに出力ファイルを書き込む必要があります。 os.walkなどについて読んだことがありますが、os.walkが動作するスクリプトをどのように変更するのか分かりません。私を助けてください。Python;すべてのサブフォルダでsciptを実行してください
d1 = {}
with open('genes.gff.genespercontig.csv', 'r') as f:
for line in f:
tok = line.split()
d1[tok[1]] = int(float(tok[0]))
d2 = {}
with open('hmmer.analyze.txt.result.txt', 'r') as f2:
for line in f2:
tak = line.split()
d2[tak[1]] = int(float(tak[0]))
from itertools import chain
from collections import defaultdict
d3 = defaultdict(list)
for k, v in chain(d1.items(), d2.items()):
d3[k].append(v)
import csv
with open('output_contigsvsgenes.csv', 'w') as f:
writer = csv.writer(f)
for k,v in d3.items():
writer.writerow([k] + v)
ご協力いただきありがとうございますが、これを試してみると、次のエラーが表示されます。IOError:[Errno 2]このようなファイルやディレクトリはありません: './genes.gff.genespercontig.csv'。私はファイルが各サブディレクトリにあることを確信していますが、スクリプトがそれらを見つけることができないようです。 – Gravel
名前のエラーだけでなく、すべてのエラーをキャッチするために2番目の例を編集しました。うまくいけば、それはそれを処理する必要があります。ファイルがあると確信できても、ファイルが見つからない場合は、files変数を実際に存在することを確認してみてください。 – WillySchu
申し訳ありませんが、2番目の例でも同じエラーが返されます – Gravel