[英]How to download with wget in Python using variables?
我需要做这样的事情,但是要用Python代替Bash:
i=1
while [ $i <= 10 ] ; do
wget http://somewebsite.net/shared/fshared_$i.7z
$i = $i + 1
done
在Python中,我尝试了以下操作:
import urllib, os
i = 0
while i <= 3:
os.system('wget http://somewebsite.net/shared/fshared_',i,'.7z')
i = i + 1
但是它不起作用,该变量未正确连接(或类似的东西)。
使用Bash代码不起作用,显然在Bash中无法完成以下简单操作: i = i + 1
有人可以帮我吗?
解决了! :)
现在,我有了Bash和Python脚本,实际上,对于Python我有几个变体。
谢谢大家...非常感谢^-^
如何将该主题标记为已解决?
再次感谢。
尝试
os.system('wget http://somewebsite.net/shared/fshared_%s.7z'%i)
使用%s
代替,
您可以在Bash中增加。 您必须执行以下操作:
i=3
(( i++ ))
echo $i
最后一个应该打印4。因此您的脚本将是:
i=1
while [ $i -le 10 ] ; do
wget http://somewebsite.net/shared/fshared_$i.7z
(( i++ ))
done
编辑:修复了使用-le
而不是<=
代码,因为<=
在bash中不起作用。
您可以使用python,而无需使用urllib调用每个文件的外壳
import urllib, os
for i in range(4):
filename = 'fshared_{}.7z'.format(i)
urllib.urlretrieve('http://somewebsite.net/shared/'+filename, filename)
尝试这个
import urllib, os
i = 0
while i <= 3:
os.system('wget http://somewebsite.net/shared/fshared_%s.7z' % i)
i = i + 1
要使用串联解决这个问题,你需要用+
来连接,而不是,
因为当你使用,
连接两个字符串就他们之间的空间字符分隔,当您使用相同的不会发生+
,因为它“确实”将字符串连接起来。
例如:
print('Hello' + 'World' + '!')
print('Hello', 'Stack', 'Overflow!')
输出:
HelloWorld!
Hello Stack Overflow!
您的代码现在看起来像这样,使用+
代替,
:
#...
os.system('wget http://somewebsite.net/shared/fshared_' + i + '.7z')
#... ^ ^
您还可以指定python要求您将URL传递给wget
import os
path = raw_input("enter the url:")
os.system('wget -r -nd -l1 --no-parent -A mp3 %s'%path)
代替“ mp3”使用任何您要下载的格式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.