如何从FTP 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)

您使用的正则表达式不正确,请尝试pattern = re.compile('.*.gbff.gz')

您的正则表达式是"Unix shell 样式通配符"表达式,在正则表达式中,*具有不同的含义:将前一个字符 0 重复到n次。前一个字符.匹配除换行符之外的所有字符。

正则表达式模式 = re.compile(r'[\w.]*.gbff.gz'( 将仅匹配文件名。

最新更新