2017-02-27 59 views
-1

我已經編寫了一個腳本,它在第一次運行時基本上創建了兩個新文件夾,如果文件夾尚不存在。Python,在與腳本相同的目錄中創建一個新的文件/文件夾

import os 

try: 
    os.makedirs('results/graphs') 

except OSError: 
    pass 

而且每次運行腳本,圖形是在results/graphs文件夾中產生的。

但是我注意到最近,如果腳本是從另一個目錄中運行(例如腳本是home/user/script/但我從運行:home/user/programs/),在home/user/programs/創建新的文件夾。

我的目標是最終只在腳本文件夾中創建文件夾,因此所有生成的最終圖形將註定爲home/user/script/results/graphs

有沒有辦法實現這個使用python?

我正在使用Debian 8和python 2.7.13。這些圖是使用matplotlib生成的。

+0

看看這個問題: http://stackoverflow.com/questions/918154/relative-paths-in-python – Szabolcs

+0

的可能的複製[如何可靠地打開與Python腳本相同的目錄中的文件](http://stackoverflow.com/questions/4060221/how-to-reliably-open-a-file-in-the-same-directory-as -a-python-script) –

+0

您是否嘗試過'sys.path [0]'來獲取腳本的位置? –

回答

0

在您的腳本中results/graphs指向您運行腳本的文件夾中的結果文件夾。如果您始終希望在腳本中創建文件夾/home/user/script/results/graphs,請改爲在腳本中使用~/script/results/graphs。或者,你可以硬編碼整個路徑,/home/user/script/results/graphs

0

除了之前提到的硬編碼之外,還有另一種方法。您可以使用__file__來提取腳本所在文件的路徑。然後你可以使用它作爲父路徑追加到結果/圖

0

這對我一個解決方案,檢查它(我試過在Windows上):

import os 
d = os.path.dirname(__file__) # directory of script 
p = r'{}/results/graphs'.format(d) # path to be created 

try: 
    os.makedirs(p) 
except OSError: 
    pass 
相關問題