2016-06-21 82 views
0

我想編寫一個腳本來複制運行線路:如何在python腳本中執行這一行代碼,就好像它是命令行一樣?

D:\...\bin>jython.bat D:\...\UploadTest.py 
在Python腳本

,就像它是通過CMD。我已經嘗試了各種subprocess.Popen命令,並且它們都沒有工作(都沒有找到Errno2文件)。我目前有

subprocess.Popen([r'D:\...\bin\jython.bat', r'D:\...\UploadTest.py']) 

我試了幾個其他的變化。我主要關心命令的.bat和.py部分之間的空間。我應該在兩者之間使用r''嗎?

+2

''''''''''\\'',不是兩個。 –

+0

您是否嘗試過只導入模塊,如果它在您的Python路徑?除非有進口警衛,導入和運行腳本是一樣的。 –

+2

使用os.path.join來防止使用斜槓。這是一個多平臺的方法。 [os.path.join](https://docs.python.org/3/library/os.path.html#os.path.join) – Hamlett

回答

-1

您可能需要在POpen調用中使用shell=True。但請注意關於documentation中發現的潛在安全問題的警告。

+0

這是一條評論,而不是答案。 –

+0

@MadPhysicist這是一個試圖回答這個問題。如果你知道這不能回答這個問題,你能提供更多的信息嗎? –

+0

錯誤*文件未找到*表明問題並不存在... –

-1

我曾嘗試過這樣的事情。讓我知道這是否適合您的要求。這裏是參考文獻link

#!/usr/bin/env python 
from subprocess import call 
from textwrap import dedent 

call(dedent("""\ 
    #!/bin/bash 
    echo Hello world 
    """), shell=True) 
+0

我懷疑從批處理腳本運行jython的人會在bash中運行腳本成功。 –

相關問題