我熟悉使用os.system從命令行運行。但是,我希望能夠從特定文件夾內運行jar文件,例如。我的'測試'文件夾。這是因爲我的jar(位於我的'test'文件夾中)需要我的'test'文件夾內有一個文件。那麼,我如何在腳本中編寫一個函數來執行以下操作:c:\test>java -jar run_this.jar required_parameter.ext
?我是一個蟒蛇新手,所以非常感謝細節。提前致謝。如何讓我的Python(版本2.5)腳本在文件夾內而不是從命令行運行jar文件?
3
A
回答
5
這是一個小腳本,讓你開始。有辦法讓它「更好」,但不知道你正在努力完成的全部範圍應該是足夠的。
import os
if __name__ == "__main__":
startingDir = os.getcwd() # save our current directory
testDir = "\\test" # note that \ is windows specific, and we have to escape it
os.chdir(testDir) # change to our test directory
os.system("java -jar run_this.jar required_paramter.ext")
os.chdir(startingDir) # change back to where we started
1
一般情況:使用os.chdir更改父進程的目錄,然後使用os.system運行jar文件。如果你需要保持Python的工作目錄穩定,你需要chdir回到原來的工作目錄 - 你需要用os.getcwd()來記錄它。
在Unix上:顯式地使用os.fork創建一個子進程。在父項中,等待os.waitpid的子項。在孩子中,使用os.chdir,然後使用os.exec來運行java。
+0
爲什麼os.system優先於subprocess.Popen? – 2008-11-18 16:50:04
+0
我個人發現,對於初學者來說,子過程API也過載了(即使它允許指定新進程的cwd,使恢復不必要)。 – 2008-11-18 23:52:45
相關問題
- 1. CodeIgniter:如果控制器位於文件夾內,從命令行運行腳本?
- 2. 如何從命令行運行R腳本文件
- 3. 如何運行保存在python腳本文本文件中的Linux命令?
- 4. 如何使用python(版本2.5)壓縮文件夾的內容?
- 5. 如何在我的咖啡腳本文件中從命令行運行方法?
- 6. 如何從JAR文件執行腳本?
- 7. bash腳本運行從文件的速度比在命令行
- 8. 傳遞命令行參數,從一個文件夾腳本文件腳本
- 9. 在指定文件夾中運行Bash腳本命令
- 10. Python 3.3.3:從Python腳本運行文件?
- 11. 如何從命令行運行腳本?
- 12. 可以從命令行運行jar而不是shell腳本 - 爲什麼?
- 13. 如何使用brotli命令行(版本0.5.2)壓縮文件夾?
- 14. 從MEL命令運行的Python腳本
- 15. 在文件夾中運行SQL腳本
- 16. 從命令行運行腳本時將文件下載爲csv
- 17. Powershell:腳本不是從命令行運行,而是從ISE運行?
- 18. Shell腳本從命令行運行,而不是cron
- 19. 命令行python腳本在不同目錄中的文件上運行
- 20. 從Python運行Jar文件
- 21. gdb從命令行運行,但不是從腳本運行
- 22. Powershell腳本從命令行運行,但不是從TFS運行
- 23. bash腳本從命令行運行但不是從cron運行
- 24. 從csh腳本運行本地可執行文件時找不到命令
- 25. 如何從Windows命令行運行python文件(.py)而不必先鍵入python?
- 26. 從python腳本運行vim命令
- 27. 如何讓Blender導出腳本從命令行運行?
- 28. 運行jar文件中存在的perl腳本文件
- 29. 如何運行具有Ruby腳本的.txt文件,而不使用命令行中的ruby命令
- 30. 從不同文件夾運行Python腳本:Errno 2沒有文件或目錄?
嘗試提供腳本中不起作用的部分。並非全部,而是一段說明你的問題的代碼。 – 2008-11-18 16:25:00