![](/img/trans.png)
[英]Running a python script with nose.run(…) from outside of the script's directory results in AttributeError: 'module' object has no attribute 'tests'
[英]Running python codes from outside the directory when script has filepaths
所以我有一個Python腳本my_script.py
,它位於Test
文件夾中,而我不在此文件夾中。 該腳本需要從存儲在文件夾Test
的文件my_data.dat
訪問某些輸入數據。
現在,當我嘗試使用簡單的python my_script.py
從文件夾Test
外部運行此腳本時,它將嘗試在運行腳本的文件夾中定位my_data.dat
,因此失敗。 如何在不實際修改my_script.py中的路徑的情況下告訴它使用正確的路徑?
我不想修改腳本中的路徑,因為該腳本通常用於各種路徑,並且整個過程稍后將自動進行。
您需要使用絕對文件路徑而不是相對文件路徑。
要獲取包含python文件的目錄的絕對路徑:
import os
ROOT_DIR = os.path.dirname(__file__)
並且您可以獲得my_data.dat
絕對路徑
data_file_path = os.path.join(ROOT_DIR, 'my_data.dat')
之后,使用data_file_path
代替"my_data.dat"
您可以將路徑my_data.dat
作為腳本的參數傳遞,或者(如果數據文件始終與腳本位於同一目錄中),則可以使用變量__file__
來確定腳本的位置並查找數據該目錄中的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.