我有一些URL。我想从这些URL中获取“ .gbff.gz
”文件名并下载这些文件。我正在使用 python3 来做到这一点。
我的计划是首先获取.gbff.gz文件,然后使用'urllib.request.urlretrieve
'函数从URL获取文件。我可以使用以下代码检索文件,但无法获取.gbff.gz扩展名。有人可以帮我得到吗?
用于从URL下载文件的代码。
import os
import urllib.request
def download_file(path, url):
url = url.rstrip()
head, tail = os.path.split(url)
filename = os.path.join(path, tail)
try:
urllib.request.urlretrieve(url, filename)
except urllib.request.URLError:
print("Download Issue: {}".format(url))
finally:
print("Download Complete: {}".format(url))
return filename
但是以某种方式,我在检索名称时遇到了问题。
这是我的尝试:
from urllib.request import urlopen
url = "ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/010/065/GCF_000010065.1_ASM1006v1/"
result = urlopen(url).read().decode('utf-8')
pattern = re.compile('*.gbff.gz')
filelist = pattern.findall(result )
print(filelist)
答案 0 :(得分:0)
您使用的正则表达式不正确,请尝试使用pattern = re.compile('.*\.gbff.gz')
。
您的正则表达式是“ Unix shell样式的通配符”表达式,在正则表达式中,*
具有不同的含义:将前一个字符0重复n
次。前一个字符.
与除换行符之外的所有字符匹配。
答案 1 :(得分:0)
regex模式= re.compile(r'[\ w。] *。gbff.gz')仅匹配文件名。