使用 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()
我正在尝试使用 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()