【发布时间】:2020-03-03 13:50:18
【问题描述】:
我想将应用到多个 url 的 curl 命令的内容写入一个文件,例如我有
days = [f'from-{x+1}d-to-{x}'for x in range(5, 0, -1)]
urls = [f'https:\\example.com?{day}/data' for day in days]
command = [f'curl {url}' for url in urls]
command
['curl https:\\example.com?from-6d-to-5/data', 'curl https:\\example.com?from-5d-to-4/data', 'curl https:\\example.com?from-4d-to-3/data', 'curl https:\\example.com?from-3d-to-2/data', 'curl https:\\example.com?from-2d-to-1/data']
我正在尝试将其全部写入一个文件:
content = subprocess.Popen(([x for x in command]), shell = True, text = True, stdout = subprocess.PIPE).communicate()
file_name = open('file_1', 'a')
file_name.write(str(content))
但看起来 subprocess.Popen 只执行第一个 curl 命令,因为我在控制台中只能看到一个输出:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12591 0 12591 0 0 20931 0 --:--:-- --:--:-- --:--:-- 20915
有没有办法用 subprocess.Popen 执行多个命令?我想应该有与要卷曲的 url 数量相同数量的控制台输出
【问题讨论】:
标签: python curl subprocess popen