Python 使用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

我有一个.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/"

#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谢谢!代码的最后一部分对我有效,我还必须创建一个新文件路径的目录,因为我不能创建两个相同的目录。