python FTP下载特定名称的文件

2023-12-01

我有一个带有文件夹的 FTP,它包含以下文件:

pw201602042000.nc,
 pw201602042010.nc,
 pw201602042020.nc, 
 pw201602042030.nc, 
 pw201602042040.nc,
 pw201602042050.nc,
 pw201602042100.nc,
 pw201602042110.nc, 
 pw201602042120.nc, 
 pw201602042130.nc, 
 pw201602042140.nc,
 pw201602042150.nc, 
 pw201602042200.nc

如何只下载以00结尾的文件?

from ftplib import FTP

server = FTP("ip/serveradress")
server.login("user", "password")

server.retrlines("LIST") 
server.cwd("Folder")

server.sendcmd("TYPE i") # ready for file transfer
server.retrbinary("RETR %s"%("pw201602042300.nc"), open("pw", "wb").write) 

当您获得文件列表时list_of_files,只需使用fnmatch根据通配符匹配文件名:

list_of_files = server.retrlines("LIST")
dest_dir = "."
for name in list_of_files:
    if fnmatch.fnmatch(name,"*00.nc"):
        with open(os.path.join(dest_dir,name), "wb") as f:
            server.retrbinary("RETR {}".format(name), f.write)  

(请注意,您正在将文件写入同一"pw"输出文件,我更改了它,重用原始名称并提供目标目录变量,并保护open in a with块以确保文件在退出块时关闭)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python FTP下载特定名称的文件 的相关文章

随机推荐