#python #arguments #args
Вопрос:
Здравствуйте, пожалуйста, чтобы скомпилировать программу, которую я использую, я использую в терминале команду:
python3 dd.py cholesky.c --args "mat.mtx.txt 1400" --verbose --debug
я использую два аргумента, как вы можете видеть файл 494_bus.mtx.txt и 1400, но теперь мне нужно использовать его в python-скрипте с использованием check_output, чтобы использовать разные значения от 1400, поэтому я использую этот цикл
for i in range(1400, 2500, 100):
i = str(i)
check = check_output(["python3", "dd-.py", "cholesky.c","--args", "494_bus.mtx.txt", i, "--verbose", "--debug"]).decode('ascii')
но это не сработало, и это возвращает сообщение:
File "numit.py", line 8, in main
check = check_output(["python3", "dd-fp2mp.py", "cg.c","--args", "494_bus.mtx.txt", i, "--verbose", "--debug"]).decode('ascii')
File "/usr/lib/python3.8/subprocess.py", line 415, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib/python3.8/subprocess.py", line 516, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['python3', 'dd-fp2mp.py', 'cg.c', '--args', '494_bus.mtx.txt', '1400', '--verbose', '--debug']' returned non-zero exit status 2.
пожалуйста, мне действительно нужна помощь.
Комментарии:
1. Есть сообщение об ошибке, вы его проверили? Поскольку мы не уверены, что делает выполняемый вами скрипт python, мы можем только догадываться, что
2
означает код возврата.2. Запустите команду самостоятельно напрямую и посмотрите, какую ошибку она вызовет.
python3 dd-fp2mp.py cg.c --args 494_bus.mtx.txt 1400 --verbose --debug
3. Есть разница между
'--args', '494_bus.mtx.txt', '1400'
и'--args', '494_bus.mtx.txt 1400'
.
Ответ №1:
Вы передаете --args
параметр не так, как:
python3 dd.py cholesky.c --args "494_bus.mtx.txt 1400" --verbose --debug
"494_bus.mtx.txt 1400"
должен быть один параметр, такой как:
check = check_output(["python3", "dd.py", "cholesky.c","--args", f"494_bus.mtx.txt {i}", "--verbose", "--debug"]).decode('ascii')