Python 使用CSV中的数据创建目录
我有一个.csv文件,如下所示:Python 使用CSV中的数据创建目录,python,Python,我有一个.csv文件,如下所示: name1,name2,name3 and so on 使用Python脚本,我试图让它读取.csv并为每个值创建目录 例如:name1、name2、name3将创建以下目录:name1、name2和name3 这是我目前的代码: import os import fileinput textFile = 'E:/Videos/Movies/subtest/dirlist.csv' path = "E:/Videos/Movies/subtest/" #ge
name1,name2,name3 and so on
使用Python脚本,我试图让它读取.csv并为每个值创建目录
例如:name1、name2、name3
将创建以下目录:name1、name2和name3
这是我目前的代码:
import os
import fileinput
textFile = 'E:/Videos/Movies/subtest/dirlist.csv'
path = "E:/Videos/Movies/subtest/"
#generate a txt file with the current names of the directories
def makeFile():
# Open a file
dirs = os.listdir( path )
# This would print all the files and directories
for file in dirs:
#open the file
tFO = open(textFile, "ab+")
#write to the file, seprating each item with "||"
tFO.write( file + ',' )
#print output
print ( file )
#prints confirmation
print 'file printed!'
#close the file
tFO.close()
mainMenu()
def makeDirs():
#open textFile as read only and set its varible as myListRead
myListRead = open(textFile, 'rb+')
#reads the x amount of lines and stores it as str
str = myListRead.read();
for line in str:
os.makedirs(path + str)
print 'directories created:', str
运行此代码会按照我的预期创建.csv,但当我运行makeDirs()时,它会使目录名成为所有.csv(文件夹名为name1、name2、name3)如果添加一些
print
语句添加到代码中
给定一个如下所示的输入文件:
name1,name2,name3
以下代码:
str = myListRead.read();
for line in str:
print 'LINE:', line
将打印:
LINE: n
LINE: a
LINE: m
LINE: e
LINE: 1
LINE: ,
LINE: n
LINE: a
LINE: m
LINE: e
LINE: 2
LINE: ,
LINE: n
LINE: a
LINE: m
LINE: e
LINE: 3
LINE:
也就是说,您迭代的是字符,而不是逗号分隔的项。
read()
方法将整个文件作为单个字符串读取。你
获取字符序列,而不是行序列
如果要在文件中的行上迭代,则不需要调用
read()
,您只需执行以下操作:
myListRead = open(textFile, 'rb+')
for line in myListRead:
print 'LINE:', line
这将产生:
LINE: name1,name2,name3
当然,你需要用逗号分开这一行。你
可以这样做:
for line in myListRead:
for item in line.strip().split(','):
os.makedirs(os.path.join(path, item))
print 'created', item
您还可以考虑使用内置的csv
模块进行解析
您的CSV文件,尽管对于您的特定用途来说,这可能有些过分
案例。你能澄清你的代码有什么问题吗?你的问题到底是什么?你能从os.makedirs打印出path+str是什么并发布在这里吗?@sihrc path+str产生:E:/Videos/Movies/subtest/dirlist.txt,run.py谢谢!代码的最后一部分对我有效,我还必须创建一个新文件路径的目录,因为我不能创建两个相同的目录。