使用 python 将文件从 ftp 检索到特定的 os 目录 3

retrieving files from ftp to specific os directory using python 3

我正在尝试使用 Python3 脚本自动执行每日 ftp 传输。我在编写文件时遇到了一个小问题,但我希望它们成为这样。这就是我正在做的:

import time, os
from ftplib import FTP
from datetime import datetime

today=time.strftime('%d%m%y')
dirName='mydir'+today

if not os.path.exists(dirName):
    os.mkdir(dirName)
    print("Directory " , dirName ,  " Created ")
else:    
    print("Directory " , dirName ,  " already exists")

os.chdir(dirName)

start = datetime.now()
ftp = FTP('ftp')
ftp.login('user','pass')
ftpdir='localdir'+today
ftp.cwd(ftpdir)

# Get All Files
files = ftp.nlst()

# Print out the files
for file in files:
    print("Downloading..." + file)
    ftp.retrbinary("RETR " + file, open(dirName + file, 'wb').write)

ftp.close()

我从这段代码中得到的是所有下载的 ftp 文件都保留在 "today" 以上的文件夹级别中,而它们的文件名以 "today" str.

有人可以帮忙吗。

提前致谢

您必须分隔路径组件。对于平台无关的解决方案,使用 os.path.join:

import os

dirName = os.path.join('mydir', today)

问题解决了一个吧:

# Print out the files
for file in files:
    print("Downloading..." + file)
    ftp.retrbinary("RETR " + file, open(dirName + '\' + file, 'wb').write)

ftp.close()