我正在尝试从终端调用python
脚本,该脚本本身称为.jar
。请注意,此java程序接受一个参数(String)并使用此字符串的内容写入.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
答案 0 :(得分:3)
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
答案 1 :(得分:-1)
sys.argv[0]
-sys.argv[]
列表从sys.argv[1]
开始!
由于sys.code
中有sys.argv[0]
,因此无法使用。
您也可以使用import argparse
。
您将获得一些额外的帮助功能,而无需添加
错误函数sys.argv[1] == 1
另请参阅: https://pythonprogramming.net/argparse-cli-intermediate-python-tutorial/