Передача переменных в Subprocess.Popen для запуска команды копирования - PullRequest
0 голосов
/ 09 марта 2020

У меня есть скрипт, который запускает команду копирования для копирования файлов и каталогов. Поскольку у меня есть аргументы, хранящиеся в переменных.

copy_cmd = ['Lang=en_US' , '/bin/cp' , '-r' , '-v']

Option['source']

Option['destination']

Я передаю значение Option ['source'] & Option ['destination'] во время выполнения. Я не могу выполнить команду и получить ....

child exception
AttributeError: list object has no attribute rfind

Команда, которую я использую:

copy_pid = subprocess.Popen([copy_cmd , Option['source'] , '/.' , 'Option['destination']'] , stdin = subprocess.PIPE , stdout = subprocess.PIPE)

1 Ответ

0 голосов
/ 09 марта 2020

Вам необходимо передать список строк, но copy_cmd - это уже список. Итак, вы должны объединить его, а не вставить как элемент.

copy_pid = subprocess.Popen(copy_cmd + [Option['source'] , '/.' , Option['destination']] , stdin = subprocess.PIPE , stdout = subprocess.PIPE)

Также я не понимаю, для чего эти Option, поэтому я просто оставил их такими, какие они были.

...