2015-04-02 53 views
2

我正在使用python創建CSV(逗號分隔值)文件。它包含路徑和文件夾中的所有文件。對於不同文件夾中的文件,它以逗號分隔,然後是其文件夾中沒有字符的數字。例如,我有圖像1.pgm,它存儲在文件夾s14中。然後CSV格式看起來像從文件路徑創建逗號分隔值文件

at/s14/1.pgm;14 

其中,at/s14/1.pgm是將文件的完整路徑1.pgm14是從它的文件夾s14獲得數(稱爲標籤)。你能幫我通過python實現嗎?我試圖與代碼,但它不適合我的任務

回答

1

工作試試這個:在輸出文件

import os 
import re 
import sys 



SEPARATOR = ';' 
CSV_FILE_PATH = 'output.csv' 



if __name__ == "__main__": 
    if len(sys.argv) != 2: 
     print "usage: create_csv <base_path>" 
     sys.exit(1) 

    path = sys.argv[1] 

    # only folders in specified folder 
    folders = filter(os.path.isdir, os.listdir(path)) 

    with open(CSV_FILE_PATH, 'w') as csv_file: 
     for folder in folders: 
      # folder path 
      folder_path = os.path.join(path, folder) 

      # extracting number 
      match = re.match(r's(\d+)', folder) # s\d+ is the pattern of your folder name, for example s20 
      if match is not None: 
       number = match.group(1) 

       # loop for files within the folder 
       for filename in os.listdir(folder_path): 
        # full file path 
        filepath = os.path.join(folder_path, filename) 

        # writing result 
        line = SEPARATOR.join((filepath, number)) 
        csv_file.write(line + '\n') 
+0

沒有,先生。讓我們看看預期的輸出文件。假設比在文件夾包含s14,s20 ....而我只調用python.exe make_folder.py在 – Jame 2015-04-02 10:05:47

相關問題