从 csv.file 创建文件夹

Create folders from csv.file

我想用一个 csv 文件中的信息创建几个文件夹,该文件的格式为

Name,GivenName,id
Doe,John,12345
Doe,Jane,23456

应为每个 person/entry 创建一个文件夹,其中 id 是文件夹的名称。

我确实在解决方案 中发现了类似的问题,其中接受的答案使用 python 和以下代码:

import os
import csv

with open('insurance_sample.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter = ';')
    header = readCSV.next()
    for row in readCSV:
        dirname = "/".join((row[0], row[1], row[3], row[4], row[7]))
        if not os.path.exists(dirname):
            os.makedirs(dirname)

我改成了

import os
import csv

with open('input.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter = ',')
    header = readCSV.next()
    for row in readCSV:
        dirname = "/".join((row[2]))
        if not os.path.exists(dirname):
            os.makedirs(dirname)

因为我只需要 id 的条目,希望得到一个名为 12345 的文件夹和一个名为 23456 的文件夹。相反,我得到一个嵌套文件夹 1>2>3>4>5 和另一个嵌套文件夹 2>3>4 >5>6.

我对 python(或编程)完全陌生,所以我真的不知道为什么会这样或如何解决这个问题。我也不打算使用 python,只要能用就行了。我正在使用 Ubuntu 20.04

row[2] 是字符串,例如'12345'。当你做 "/".join((row[2])) dirname'1/2/3/4/5'。 只做 dirname = row[2]} 请注意,这是相对路径,因此将在当前工作目录中创建目录。

请注意,您的代码容易出现竞争条件。当您检查文件夹是否存在时,另一个进程可能会 create/delete 在您尝试使用它之前。