我需要将从一台服务器下载的图像发送到另一台服务器。但是,我需要将图像保存在包含“年”、“月”的文件夹中。这是一个示例:
ftp = ftplib.FTP('ftp-server','userftp','*********')
file = open('download-torrent-filme.webp','rb')
ftp.storbinary('STOR year/month/download-torrent-filme.webp', file)
我需要创建这样的文件夹,以防它们不存在。我的想法是将年份和月份存储在变量中并发送。例如:
year = date.today().year
month = date.today().month
ftp.storbinary('STOR '+year+'/'+month+'/download-torrent-filme.webp', file)
但是如果该文件夹不存在,我需要创建该文件夹。我怎样才能尽可能干净简单地做到这一点?
图书馆的有用功能
ftplib
:
nlst()
列出 ftp 服务器中所有文件的数组。mkd()
在 ftp 服务器上创建一个文件夹。尝试下面的代码:
import ftplib
from datetime import date
str_year = str(date.today().year)
str_month = str(date.today().month)
# here I use exactly your example instruction
ftp = ftplib.FTP('ftp-server','userftp','*********')
if str_year not in ftp.nlst():
# year directory creation
print(f"[1] - {str_year} directory creation")
ftp.mkd(str_year)
# year/month directory creation
print(f"[1] - {str_year}/{str_month} directory creation")
ftp.mkd(str_year + "/" + str_month)
else:
if str_year + '/' + str_month not in ftp.nlst(str_year):
print(f"[2] - {str_year}/{str_month} directory creation")
# year/month directory creation
ftp.mkd(str_year + "/" + str_month)
文档:
ftplib
的信息。