从 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 在您尝试使用它之前。
我想用一个 csv 文件中的信息创建几个文件夹,该文件的格式为
Name,GivenName,id
Doe,John,12345
Doe,Jane,23456
应为每个 person/entry 创建一个文件夹,其中 id 是文件夹的名称。
我确实在解决方案
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 在您尝试使用它之前。