python - Using data from CSV to make directories -


i have .csv file such following:

name1,name2,name3 , on 

using python script trying have read .csv , make directories each value eg: name1,name2,name3 create these directories :name1 , name2 , name3

this code far:

import os import fileinput textfile = 'e:/videos/movies/subtest/dirlist.csv' path = "e:/videos/movies/subtest/"  #generate txt file current names of directories def makefile():     # open file     dirs = os.listdir( path )     # print files , directories     file in dirs:         #open file         tfo = open(textfile, "ab+")         #write file, seprating each item "||"         tfo.write( file + ',' )          #print output         print ( file )         #prints confirmation         print 'file printed!'         #close file         tfo.close()     mainmenu()  def makedirs():     #open textfile read , set varible mylistread     mylistread = open(textfile, 'rb+')     #reads x amount of lines , stores str     str = mylistread.read();     line in str:         os.makedirs(path + str)     print 'directories created:', str 

running code creates .csv intended, when run makedirs() makes directory name of .csv (name1,name2,name3 foldername)

your problems become obvious if add print statements code.

given input file looks like:

name1,name2,name3 

the following code:

str = mylistread.read(); line in str:     print 'line:', line 

would print:

line: n line: line: m line: e line: 1 line: , line: n line: line: m line: e line: 2 line: , line: n line: line: m line: e line: 3 line:  

that is, you're iterating on characters, not comma delimited items. read() method reads in entire file single string. sequence of characters, not sequence of lines.

if want iterate on lines in file, don't need call read(), can this:

mylistread = open(textfile, 'rb+') line in mylistread:     print 'line:', line 

which yield:

line: name1,name2,name3 

of course, you're going need split line on commas. this:

for line in mylistread:     item in line.strip().split(','):         os.makedirs(os.path.join(path, item))         print 'created', item 

you think using built-in csv module parsing csv file, although may overkill particular use case.


Comments

Popular posts from this blog

c++ - Creating new partition disk winapi -

Android Prevent Bluetooth Pairing Dialog -

VBA function to include CDATA -