繁体   English   中英

无法将 sys.argv[0] 传递给 subprocess.call

[英]Can't pass sys.argv[0] to subprocess.call

我正在尝试从本身调用.jar的终端调用python脚本。 请注意,这个 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM