Python 从文件路径创建逗号分隔值文件

Python 从文件路径创建逗号分隔值文件,python,csv,Python,Csv,我正在使用python创建一个CSV(逗号分隔值)文件。它包含文件夹中的路径和所有文件。如果文件位于不同的文件夹中,则用逗号分隔,然后用不带字符的文件夹编号分隔。例如,我的image1.pgm存储在文件夹s14中。然后CSV格式看起来像 at/s14/1.pgm;14 其中,at/s14/1.pgm是文件1.pgm的完整路径,14是从其文件夹s14获取的编号(称为标签)。你能帮我用python实现它吗。我尝试使用该代码,但它不适用于我的任务 import os import re import

我正在使用python创建一个
CSV
(逗号分隔值)文件。它包含文件夹中的路径和所有文件。如果文件位于不同的文件夹中,则用逗号分隔,然后用不带字符的文件夹编号分隔。例如,我的image
1.pgm
存储在文件夹
s14
中。然后CSV格式看起来像

at/s14/1.pgm;14
其中,
at/s14/1.pgm
是文件
1.pgm
的完整路径,
14
是从其文件夹
s14
获取的编号(称为标签)。你能帮我用python实现它吗。我尝试使用该代码,但它不适用于我的任务

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')
导入操作系统
进口稀土
导入系统
分隔符=';'
CSV_文件_路径='output.CSV'
如果名称=“\uuuuu main\uuuuuuuu”:
如果len(sys.argv)!=2:
打印“用法:创建\u csv”
系统出口(1)
path=sys.argv[1]
#仅指定文件夹中的文件夹
文件夹=过滤器(os.path.isdir、os.listdir(path))
打开(CSV_文件_路径,'w')作为CSV_文件:
对于文件夹中的文件夹:
#文件夹路径
folder\u path=os.path.join(路径,文件夹)
#提取数
match=re.match(r's(\d+),folder)#s\d+是文件夹名称的模式,例如s20
如果匹配项不是无:
编号=匹配。组(1)
#循环查找文件夹中的文件
对于os.listdir(文件夹路径)中的文件名:
#完整文件路径
filepath=os.path.join(文件夹路径,文件名)
#写作成绩
line=分隔符.连接((文件路径,编号))
csv_文件。写入(第+'\n'行)

输出文件中没有任何内容,先生。让我们看看预期的输出文件。假设than at文件夹包含s14、s20…并且我只调用python.exe make_folder.py at