我有一个csv文件,如下所示:
dc_identifier,aubrey_identifier
AR0776-280206-LT513-01,metadc1084267
AR0776-280206-LT513-02,metadc1083385
AR0776-280206-LT513-03,metadc1084185
AR0776-280206-LT513-04,metadc1083449
AR0776-280206-LT513-05,metadc1084294
AR0776-280206-LT513-06,metadc1083393
AR0776-280206-LT513-07,metadc1083604
AR0776-280206-LT513-08,metadc1083956
AR0776-280206-LT513-09,metadc1083223
AR0776-280206-LT513-10,metadc1084224
我需要在脚本所在的目录中创建带有“metadc #######”名称的文件夹。
这是我到目前为止所拥有的:
import os
import fileinput
path = 'C:\Users\gpp0020\Desktop\TestDir'
textFile = 'C:\Users\gpp0020\Desktop\TestDir\kxas_ids.csv'
myList = open(textFile, 'rb+')
for line in myList:
for item in line.strip().split(','):
os.makedirs(os.path.join(path, item))
print 'created', item
然而!我还需要程序来获取使用标识符(AR0776-280206-LT513-01
等)命名的文件,并根据csv将它们放在相应的元数据中。每个文件都加倍(一个.mkv文件和一个.mkv.md5校验和文件),两者都需要进入文件夹。
最好的方法是什么?
答案 0 :(得分:1)
使用import csv
import os
import shutil
path = r'C:\Users\gpp0020\Desktop\TestDir'
with open('kxas_ids.csv', 'r', newline='') as f_input:
csv_input = csv.reader(f_input)
header = next(csv_input)
for dv, aubrey in csv_input:
os.makedirs(os.path.join(path, aubrey), exist_ok=True)
mkv = '{}.mkv'.format(dv)
shutil.copy2(os.path.join(path, mkv), os.path.join(path, aubrey, mkv))
mkv_md5 = '{}.mkv.md5'.format(dv)
shutil.copy2(os.path.join(path, mkv_md5), os.path.join(path, aubrey, mkv_md5))
库帮助您阅读以下文件:
C:\Users\gpp0020\Desktop\TestDir\metadc108426
这将是例如:
创建名为AR0776-280206-LT513-01.mkv
将名为AR0776-280206-LT513-01.mkv.md5
的文件复制到其中。
将名为path
的文件复制到其中。
它假定所有文件都在{{1}}