如何在 python 中针对此特定示例进行字符串格式化

how to do string formatting in python for this specific example

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

考虑以上列表和变量

我想使用 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")

如有任何建议,我们将不胜感激。谢谢

你可以使用这样的东西:

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"