2016-11-26 112 views
-1

我想先读取csv文件,然后检查文件夹是否存在,如果没有创建一个新文件夹。 我从csv文件信息如下:Python - 通过阅读csv文件创建多个文件夹,并检查文件夹是否已经存在,如果没有创建一个新文件夹

enter image description here

阅读CSV文件后,它会创建程序文件夹,然后在程序文件夹它的游戏类型的子文件夹,然后开发商子文件夹,游戏炭子文件夹中。该文件夹结构应该是这个样子:

  1. A380 /魔兽/ 69 /暴雪/战略
  2. A380 /监工/ 69 /暴雪/射手
  3. A350 /天际/ 51 /贝塞斯达/角色播放

所以会有里面例如魔兽和监工将A380文件夹内的两个文件夹的多个文件夹。

到目前为止,我已经做到了这一点:

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)

请让我知道,如果问题仍扑朔迷离,我会尽量详细解释。

+0

所以你写了一些代码。它工作吗?为什么或者为什么不? –

+0

你在Windows或Linux? – MYGz

回答

1

首先你要提取一个值行并将它们连接到路径名称。之后os.path.exists将检查目录是否存在,os.makedirs会为您递归创建目录。

所以,你可以试试这个:

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) 
0

我希望下面的代码可以帮助你:

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) 

我没有测试过我的代码,但我希望,这也许可以帮助你..

+0

代码太多。 Bash的“mkdir -p ./../ ..”执行检查和制作。 – MYGz

相关问题