0
os.walk를 사용하는 스크립트가 있으며 출력 파일의 첫 번째 행에 현재 작업중인 디렉토리를 추가하려고합니다. 현재 작업 디렉토리를 얻으려면 os.path.realpath를 코드에 포함 시켰지만 csv.writer의 다음 명령은 첫 번째 행에 출력을 추가하므로 디렉토리 텍스트 바로 뒤에 csv.writer를 새 행으로 시작하고 싶습니다. 첫 번째 줄에 있지 않습니다. 나는 새로운 행에서 시작하는 "/ N '을 추가 할 수 있다는 것을 알고,하지만 난 os.path.realpath 명령에 어떻게 추가합니까? 감사를Python; csv 작성자가 새 줄에서 시작해야합니다.
import os
import csv
from itertools import chain
from collections import defaultdict
def get_file_values(find_files, output_name):
for root, dirs, files in os.walk(os.getcwd()):
if all(x in files for x in find_files):
outputs = []
for f in find_files:
d = {}
with open(os.path.join(root, f), 'r') as f1:
for line in f1:
ta = line.split()
d[ta[1]] = int(ta[0])
outputs.append(d)
d3 = defaultdict(list)
for k, v in chain(*(d.items() for d in outputs)):
d3[k].append(v)
with open(os.path.join(root, output_name), 'w+') as fnew:
fnew.write(os.path.realpath(root))
writer = csv.writer(fnew)
for k, v in d3.items():
writer.writerow([k] + v)
get_file_values(['genes.gff.genespercontig.csv', 'hmmer.analyze.txt.results.txt'], 'output_contigsvsgenes.csv')
그래, 그게 다행이다. – Gravel