我需要做这样的事情,但是用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我有几个变种。
感谢所有...非常感谢^ - ^
如何将主题标记为已解决?
再次感谢。
答案 0 :(得分:3)
尝试
os.system('wget http://somewebsite.net/shared/fshared_%s.7z'%i)
使用%s
代替,
答案 1 :(得分:1)
你可以在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中不起作用。
答案 2 :(得分:1)
您可以使用python而不使用urllib
为每个文件调用shellimport urllib, os
for i in range(4):
filename = 'fshared_{}.7z'.format(i)
urllib.urlretrieve('http://somewebsite.net/shared/'+filename, filename)
答案 3 :(得分:0)
试试这个
import urllib, os
i = 0
while i <= 3:
os.system('wget http://somewebsite.net/shared/fshared_%s.7z' % i)
i = i + 1
答案 4 :(得分:0)
要解决串联问题,您需要使用+
来连接而不是,
,因为当您使用,
连接两个字符串时,它会用空格字符分隔它们之间,使用+
时不会发生同样的情况,因为它“真的”连接了字符串。
E.g:
print('Hello' + 'World' + '!')
print('Hello', 'Stack', 'Overflow!')
输出:
HelloWorld!
Hello Stack Overflow!
现在使用+
而不是,
代码看起来像这样:
#...
os.system('wget http://somewebsite.net/shared/fshared_' + i + '.7z')
#... ^ ^
答案 5 :(得分:0)
你也可以指定python来询问你传递给wget的网址
import os
path = raw_input("enter the url:")
os.system('wget -r -nd -l1 --no-parent -A mp3 %s'%path)
代替'mp3'使用您想要下载的任何格式。