从csv中的单个列创建文件夹,并使用其他列将文件重命名为文件夹

时间:2018-03-16 15:32:07

标签: python python-3.x csv

我有一个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校验和文件),两者都需要进入文件夹。

最好的方法是什么?

1 个答案:

答案 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

这将是例如:

  1. 创建名为AR0776-280206-LT513-01.mkv

  2. 的文件夹
  3. 将名为AR0776-280206-LT513-01.mkv.md5的文件复制到其中。

  4. 将名为path的文件复制到其中。

  5. 它假定所有文件都在{{1}}

  6. 中找到
相关问题