2016-11-26 114 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

相關問題