Python os.walk:添加文件夹名称到输出

时间:2017-03-28 16:10:43

标签: python os.walk

我有以下脚本,效果很好,但现在我想将文件夹的名称添加到输出文件中。该脚本与os.walk一起进入当前工作文件夹的子目录,我想将子目录文件夹名称添加到输出中。最好,我想只将文件夹名称(而不是整个路径)添加到输出文件的第一行。谁可以帮我编辑脚本? 提前谢谢!

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

1 个答案:

答案 0 :(得分:0)

您可以使用os.listdir(path)获取所有子目录和文件名。

请参阅:https://docs.python.org/2/library/os.html

例如,

os.listdir('.')用于当前目录,os.listdir('../')用于一个级别目录。

os.path.relpath('.','..')为您提供当前目录的文件夹名称。