2017-08-14 103 views
1

我正在創建一個python腳本,該腳本實際上將用戶的參數作爲參數傳遞給「文件路徑」。它執行一些後期處理,並在與原始文件相同的目錄中創建一個新文件。處理文件和路徑的最佳做法是什麼?

例如:myscript.py C:\\A\\sub_A\\work_on_this_file.csv

我使用的路徑,我收到自己創建
C:\\A\\sub_A\\final_file.csv

文件處理程序,我被告知要使用os.chdir()導航到該文件夾​​,而不是和我的創造最終文件,而不是直接使用路徑。這種情況下的最佳做法是什麼?有沒有改變工作目錄的風險?

回答

1

我會鼓勵你總是使用絕對路徑,實際上這是最直接的方法。所以,使用絕對路徑直接創建一個文件(或打開一個現有文件,無所謂)是好的。

當你不知道你是否有絕對或相對路徑我竟被建議服用腳本的目錄作爲基本的文件夾,然後生成一個絕對路徑,像這樣:

import os 

cwd = os.path.abspath(os.path.dirname(__file__)) 
given_path = "../../myfile.csv" 
csv_path = os.path.abspath(os.path.join(cwd, given_path)) 

而不是__file__使用在處理模塊/導入的腳本時使用sys.argv[0]。國際海事組織通常不需要改變CWD,很可能很快就會破壞其他事情。

+0

我會進一步建議記錄所有這些路徑,如果可行的話,但是。我不知道爲什麼你會被鼓勵使用os.chdir(),除了解決一些第三方產品的遺留問題。 – Arafangion

相關問題