python - 使用 Python 脚本将文件夹从本地系统上传到 FTP

标签 python ftp ftplib

我必须使用 Python 脚本自动将文件夹上传到 FTP。我可以上传单个文件,但不能上传包含子文件夹和文件的文件夹。我做了很多搜索,但没有成功。有人可以帮我吗?提前致谢。

#! /usr/bin/python

import ftplib
s = ftplib.FTP('serverip','usrname','password') 
file = '/home/rock/test.txt'
ftppath = '/IT'
filename = "rak"
s.cwd(ftppath)
f = open(file,'rb')                
s.storbinary('STOR ' + filename, f)         

f.close()                                
s.quit()

最佳答案

我最近遇到了这个问题,想出了一个递归函数来解决它。

import ftplib
import os

server = 'localhost'
username = 'generic_user'
password = 'password'
myFTP = ftplib.FTP(server, username, password)
myPath = r'c:\temp'
def uploadThis(path):
    files = os.listdir(path)
    os.chdir(path)
    for f in files:
        if os.path.isfile(path + r'\{}'.format(f)):
            fh = open(f, 'rb')
            myFTP.storbinary('STOR %s' % f, fh)
            fh.close()
        elif os.path.isdir(path + r'\{}'.format(f)):
            myFTP.mkd(f)
            myFTP.cwd(f)
            uploadThis(path + r'\{}'.format(f))
    myFTP.cwd('..')
    os.chdir('..')
uploadThis(myPath) # now call the recursive function            

关于python - 使用 Python 脚本将文件夹从本地系统上传到 FTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5663787/

相关文章:

python - 验证 HTTP 请求的来源

python - 在 keras 中保存和加载权重

python - 使用pysftp连接FTP服务器

python - 如何在Python中恢复中断的FTP上传

python - 使用FTPlib上传一个200kb的html页面

python - 如何使用python访问gmail?

python - 使用 pandas 和 numpy 将字符串类别映射到数字

ant - TeamCity:如何在 ANT 中启用 FTP?

将文件放到 iSeries 上时 Python ftplib 错误 426

Python ftplib 和 storbinary