我熟悉使用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