Python; csv 编写器必须从新行开始

Python; csv writer must start on new line

我有一个使用 os.walk 的脚本,我想在输出文件的第一行添加当前工作目录。我在我的代码中包含 os.path.realpath 以获取当前工作目录,但是下面的 csv.writer 命令将输出添加到第一行,所以直接在我的目录文本之后,我希望 csv.writer 到从新行开始,而不是第一行。我知道我可以添加“/n”以在新行开始,但如何添加到 os.path.realpath 命令? 谢谢

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')

os.path.realpath() returns 一个字符串,只需在其后附加一个换行符:

fnew.write(os.path.realpath(root) + '\n')