0

I want to first read csv file then check if the folders exists, if not create a new one. I have information from csv file as follows:

enter image description here

After reading csv file it should create program folder then under program folder it game type sub folder then developer sub folder and game char sub folder. The folder structure should look something like this:

  1. A380 / Warcraft / 69 / Blizzard / Strategy
  2. A380 / Overwatch/ 69 / Blizzard / Shooter
  3. A350 / Skyrim / 51 / Bethesda / Role Playing

So there will be multiple folders inside for example warcraft and overwatch will be two folders inside A380 folder.

So far I have done this:

import os
import csv

output_root = r'/myProgram'

#csv_filename = raw_input('Enter CSV filename:')
with open('insurance_sample.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter = ';')
    header = next(readCSV)

Please let me know if the question is still confusing and I will try to explain in more detail.

gus27
  • 2,616
  • 1
  • 21
  • 25
Ash912 T
  • 23
  • 4

3 Answers3

1

First you have to extract the values of one row and join them to a path name. Afterwards os.path.exists checks if the directory exists and os.makedirs creates recursively the directories for you.

So you can try this:

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)
gus27
  • 2,616
  • 1
  • 21
  • 25
0

Probable dupe of mkdir -p functionality in Python but it's not clear to me how this poster would find this without knowing about mkdir -p.

Community
  • 1
  • 1
pete23
  • 2,204
  • 23
  • 28
0

I hope that following code may help you:

import pandas as pd
import os

path = "/home/sansingh/sanDocs/programs/sample.csv"

data = pd.read_csv(path)
for i in range(len(data)):
    row = data.iloc[i]
    program = row["Program"]
    gametype = row["Game Type"]
    dev = row["Developer"]
    gamechar = row["Game Char"]
    if(os.path.exists(program) == False):
        os.makedir(program)
        os.makedir(program + "/" + gametype)
        os.makedir(program + "/" + gametype + "/" + dev)
        os.makedir(program + "/" + gametype + "/" + dev + "/" + gamechar)
    else:
        if(os.path.exists(program + "/" + gametype) == False):
            os.makedir(program + "/" + gametype)
            os.makedir(program + "/" + gametype + "/" + dev)
            os.makedir(program + "/" + gametype + "/" + dev + "/" + gamechar)
        else:
            if(os.path.exists(program + "/" + gametype + "/" + dev) == False):
                os.makedir(program + "/" + gametype + "/" + dev)
                os.makedir(program + "/" + gametype + "/" + dev + "/" + gamechar)
            else:
                if(os.path.exists(program + "/" + gametype + "/" + dev + "/" + gamechar) == False):
                    os.makedir(program + "/" + gametype + "/" + dev + "/" + gamechar)

I haven't tested my code but I hope that this may helps you..

sansingh
  • 195
  • 8