我正在尝试调用 python
来自终端的脚本,它本身调用 .jar
.请注意,这个 java 程序接受一个参数(一个字符串)并写入一个 .txt
包含此字符串内容的文件。
我的尝试是(在 test.py
中):
#!/usr/bin/python
import sys
import subprocess
subprocess.call(['java','-jar',sys.argv[0],sys.argv[1]])
然后在终端类型中:
python test.py test.jar Hello
但是,我收到错误
Invalid or corrupt jarfile test.jar
.有趣的是以下将起作用:#!/usr/bin/python
import sys
import subprocess
subprocess.call(['java','-jar','test.jar',sys.argv[0]])
其次是:
python test.py Hello
最佳答案
sys.argv[0]
实际上是您的 Python 文件的名称,因为它是您在 python
之后给出的第一个参数.因此,在您的通话中,您希望使用 sys.argv[1]
和 sys.argv[2]
.
我的 test.py
:
import sys
print(sys.argv[0])
运行
test.py
:marius@devils-creek ~ 💀 python test.py
# Output
test.py
关于python - 无法将 sys.argv[0] 传递给 subprocess.call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18998781/