#python #bash #shell
Вопрос:
У меня есть сценарий оболочки, который я выполняю внутри скрипта python, и я хочу передать в сценарий две переменные в качестве аргументов.Я использовал знак$, но он не работает. это сценарий оболочки:
path='/home/ranim/Documents/mmdet/media/Page_00287_jpg.rf.6a823c5ce3894f223a0e8f4ec20b11b2/article1'
save='/home/ranim/Documents/mmdet/media/Page_00287_jpg.rf.6a823c5ce3894f223a0e8f4ec20b11b2/article1/annotations.json'
call('python "/home/ranim/Documents/mmdet/mmdetection/tools/test.py"
"/home/ranim/Documents/mmdet/models/second_model_conf.py"
"/home/ranim/Documents/mmdet/models/second_model_checkpoint.pth"
--cfg-options data.test.ann_file=$save
data.test.img_prefix=$path
--format-only
--options "jsonfile_prefix=path"', shell=True)
Комментарии:
1. Я не вижу, чтобы ваш скрипт ссылался на какой-либо переданный ему параметр.
Ответ №1:
Я предполагаю, что интерполяция строк может быть использована для передачи ваших переменных Python в args
call
команду. Например, если вы используете fstring
, код будет выглядеть следующим образом:
path='/home/ranim/Documents/mmdet/media/Page_00287_jpg.rf.6a823c5ce3894f223a0e8f4ec20b11b2/article1'
save='/home/ranim/Documents/mmdet/media/Page_00287_jpg.rf.6a823c5ce3894f223a0e8f4ec20b11b2/article1/annotations.json'
call(f'python "/home/ranim/Documents/mmdet/mmdetection/tools/test.py"
"/home/ranim/Documents/mmdet/models/second_model_conf.py"
"/home/ranim/Documents/mmdet/models/second_model_checkpoint.pth"
--cfg-options data.test.ann_file={save}
data.test.img_prefix={path}
--format-only
--options "jsonfile_prefix=path"', shell=True)
Комментарии:
1. Пожалуйста, примите мой ответ тогда 🙂
2. Ах, извините, я впервые публикую и получаю ответ на stackoverflow xD