我有乙個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...