2017-03-28 42 views
0

我有以下腳本,它運行良好,但現在我想將文件夾的名稱添加到輸出文件。該腳本隨os.walk進入當前工作文件夾的子目錄,並且我想將子目錄文件夾名稱添加到輸出中。最好,我只想將文件夾名稱(而不是整個路徑)添加到輸出文件的第一行。誰可以幫我編輯腳本? 在此先感謝!Python 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') 

回答

0

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

請參見:https://docs.python.org/2/library/os.html

os.listdir('.')當前目錄和os.listdir('../')爲上一級目錄,例如。

os.path.relpath('.','..')爲您提供當前目錄的文件夾名稱。

相關問題