python帶空格的路徑 使用帶空格的路徑呼叫指令碼

2021-10-19 02:34:04 字數 1298 閱讀 8991

我有乙個gui,並且正在使用乙個按鈕來呼叫python指令碼。

我python os.path.abspath(os.path.dirname(__file__))用來獲取gui指令碼的目錄,並進一步使用它來呼叫該目錄的子資料夾中的指令碼。

我使用以下方法獲取gui的路徑:

spfad = os.path.abspath(os.path.dirname(__file__))

print(spfad)

t:\kst597\common\fb\reporting\web\datenladung in sap

我將在此處儲存要呼叫的指令碼的路徑:

feld_script_man = spfad+"\felddaten\konverter_claims_man\konverter_felddaten_man.py"

我使用以下命令呼叫指令碼:

os.system("python "+feld_script_man+" 1")

我得到的錯誤:

python: can't open file 't:\kst597\common\fb\reporting\web\datenladung': [errno 2] no such file or directory

我還要確保路徑存在:

print(os.path.exists(spfad+"\felddaten\konverter_claims_man\konverter_felddaten_man.py"))

true

我該怎麼做才能解決此問題?

解決方案

是的,os.path.exists返回true,但是os.system隨著命令列/引數解析的進行而不同:

os.system("python "+feld_script_man+" 1")

從字面上擴充套件為

os.system("python t:\kst597\common\fb\reporting\web\datenladung in sap\felddaten\konverter_claims_man\konverter_felddaten_man.py 1")

如您所見,這裡沒有引號,因此python嘗試開啟第乙個引數,t:\kst597\common\fb\reporting\web\datenladung它失敗了。

始終使用subprocess模組(os.system已棄用),並始終使用引數列表。

那應該工作:

subprocess.check_call(["python",spfad+r"\felddaten\konverter_claims_man\konverter_felddaten_man.py","1"])

解決CreateProcess 路徑帶空格問題

當需要生成子程序的時候,需要用createprocess,第乙個引數指定exe所在完整路徑,其實這個路徑有空格和沒空格都沒什麼問題,第二個引數是傳入的引數列表,引數之間是用空格隔開的,如果其中乙個引數中有空格,像 c program file 這樣,傳進去的引數列表,會出現如下,argv 0 c p...

java 呼叫帶空格路徑的bat

今天寫程式遇到呼叫帶空格的bat,執行後沒反應。檢查 路徑都加上 號了。命令 cmd.exe c f testpack 新建 資料夾 乙個人的灰色世界 theme repack.bat f pack testpack 新建 資料夾 乙個人的灰色世界.test 放在 執行 裡面執行一下,還真沒反應。但...

Xpath定位帶空格的文字

1,定位普通帶空格的文字 例如定位 登入 normalize space text 登入 或者登入 normalize space text 登入 2,定位的文字標籤中帶有 abcd 123 status 登入 translate normallize space abcdefghijklmnopq...