有一个网址,其中一位同事设置了大量文件供我下载,
url = "http://www.some.url.edu/some/dirname/"
在这个目录中,有大量具有不同文件名模式的文件,我事先已知,例如“subvol1_file1.tar.gz”,“subvol1_file2.tar.gz”等。我要去使用fnmatch根据文件名模式选择性地下载这些文件。
我需要的是位于 dirname 中的所有文件名的简单列表或生成器。是否有一种简单的方法可以使用,例如,BeautifulSoup或urllib2来检索这样的列表?
一旦我有了list / iterable,我们称之为 filename_sequence ,我打算使用以下伪代码下载带有模式 filepat 的文件:
filename_sequence = code_needed
filepat = "*my.pattern*"
import os, fnmatch
for basename in fnmatch.filter(filename_sequence, filepat):
os.system("wget "+os.path.join(url, basename))
答案 0 :(得分:0)
不确定这适用于您的情况,但您可以在href
属性值上应用正则表达式模式:
import re
pattern = re.compile(r"subvol1_file\d+\.tar\.gz")
links = [a["href"] for a in soup.find_all("a", href=pattern)]