我有几个网址。从这些 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)
您使用的正则表达式不正确,请尝试pattern = re.compile('.*.gbff.gz')
。
您的正则表达式是"Unix shell 样式通配符"表达式,在正则表达式中,*
具有不同的含义:将前一个字符 0 重复到n
次。前一个字符.
匹配除换行符之外的所有字符。
正则表达式模式 = re.compile(r'[\w.]*.gbff.gz'( 将仅匹配文件名。