我使用python创建CSV
(逗号分隔值)文件。它包含路径和文件夹中的所有文件。将文件放在不同的文件夹中,用逗号分隔,然后用不带字符的文件夹编号。例如,我有一个存储在文件夹1.pgm
中的图像s14
。然后CSV格式看起来像
at/s14/1.pgm;14
其中,at/s14/1.pgm
是文件1.pgm
的完整路径,14
是从其文件夹s14
获取的编号(称为标签)。你能帮我实现python吗?我尝试使用该代码,但它不适用于我的任务
答案 0 :(得分: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')