как выполнить форматирование строки в python для этого конкретного примера

#python-3.x #string #formatting #os.system

#python-3.x #строка #форматирование #os.system

Вопрос:

 pair = ['BTC/USD', 'ETH/BTC', 'ETH/USD']
time_from = 20200101
time_to = 20200120
 

учитывая приведенный выше список и переменные

Я хочу выполнить следующий cmd с помощью модуля os.

 cmd = ("freqtrade download-data -d /home/datarepo -p 'BTC/USD' 'ETH/BTC' 'ETH/USD' -t 1h --timerange 20200101-20200101 --exchange bittrex -vv")
 

Когда я выполняю форматирование строк с "' '".join помощью, я мог бы сгенерировать cmd, подобный приведенному ниже примеру, который не является правильным cmd.

 cmd = ("freqtrade download-data -d /home/datarepo -p "BTC/USD' 'ETH/BTC' 'ETH/USD" -t 1h --timerange '20200101-20200101' --exchange bittrex -vv")
 

Любые предложения будут оценены. Спасибо

Ответ №1:

Вы могли бы использовать что-то вроде этого:

 pair = ['BTC/USD', 'ETH/BTC', 'ABC/DEF']
time_from = 20200101
time_to = 20200120

message = "'"   "' '".join(pair)   "'"

cmd = "freqtrade download-data -d /home/datarepo -p %pair% -t 1h --timerange '%time_to%-%time_from%' --exchange bittrex -vv"

cmd = cmd.replace('%pair%', message).replace('%time_to%', str(time_to)).replace('%time_from%', str(time_from))

print(cmd)
# "freqtrade download-data -d /home/datarepo -p 'BTC/USD' 'ETH/BTC' 'ABC/DEF' -t 1h --timerange '20200120-20200101' --exchange bittrex -vv"
 

Комментарии:

1. Я обновил детали, пожалуйста, посмотрите. Это то, что мне точно нужно. Спасибо

2. просто обновил мой ответ на новый вопрос

3. не могли бы вы отметить сообщение как ответ на вопрос?