2012-09-26 69 views
1

我有一個python腳本,我寫了它,使得它會產生一個輸出文件到使用這兩條線路被稱爲test新目錄:輸出文件到另一個目錄

self.mkdir_p("test") # create directory named "test" 
file_out = open("test/"+input,"w") 

和mkdir_p函數爲:

def mkdir_p(self,path): 
    try: 
     os.makedirs(path) 
    except OSError as exc: 
     if exc.errno == errno.EEXIST: 
      pass 
     else: raise 

現在,我的一切,我想我的腳本存儲在目錄中稱爲storage運行的文件,我的問題是,我怎麼可以編寫一個腳本,這樣我可以在運行中的所有文件storage從我家直接ory(我的python腳本所在的地方),並保存所有的輸出到test目錄,因爲我編碼在我的python腳本中?

我做了一個幼稚的做法,諸如bash:

#!/bin/bash 

# get the directory name where the files are stored (storage) 
in=$1 

# for files in (storage) directory 
for f in $1/* 

do 

    echo "Processing $f file..." 
    ./my_python_script.py $f 

done 

,並沒有工作,並投擲IO錯誤:No such file or directory: 'test/storage/inputfile.txt'

我希望我解釋了我的問題不夠清楚。

在此先感謝

+0

您需要將本地路徑或全局路徑編碼爲'test'。我建議走全球路線。所以'/ home/user /.../ test /' – inspectorG4dget

+0

由此,你應該雙引號'「$ f」'。這裏可能是無害的,但你應該養成一種習慣。 – tripleee

回答

0

$fstorage/inputfile.txt和Python預先考慮test/到這一點,那麼抱怨因爲test/storage不存在。創建目錄,或在創建輸出文件名之前去除目錄部分。

+0

所以現在我已經刪除了目錄創建部分,它是self.mkdir_p(「test」)行,並且在我運行該腳本之前創建了目錄,但它仍然給我帶來了同樣的問題。 – overloading

+0

呵呵?你需要修剪'storage /'部分,例如'basename = input.split('/')[ - 1]' – tripleee

相關問題