我用Google搜索但我只能找到如何上传一个文件...而我正在尝试将所有文件从本地目录上传到远程ftp目录。任何想法如何实现这一目标?
答案 0 :(得分:10)
循环?
编辑:在通用案例中,只上传文件如下:
import os
for root, dirs, files in os.walk('path/to/local/dir'):
for fname in files:
full_fname = os.path.join(root, fname)
ftp.storbinary('STOR remote/dir' + fname, open(full_fname, 'rb'))
显然,如果你只是保留这样的文件名,你需要注意名称冲突。
答案 1 :(得分:0)
查看Python-scriptlines required to make upload-files from JSON-Call和下一个FTPlib-operation: why some uploads, but others not?
虽然起始位置与您的问题不同,但在第一个网址的答案中,您会看到通过ftplib上传json文件和xml文件的示例构造:查看scriptline 024和进一步
在第二个网址中,您会看到与上传更多文件相关的其他方面。
同样适用于除json和xml之外的其他文件类型,显然还有一个不同的'条目'在定义和实现FTP_Upload-function的2个最后部分之前。
答案 2 :(得分:-2)
创建FTP批处理文件(包含您需要传输的文件列表)。使用python使用“-s”选项执行ftp.exe并传入文件列表。
这很糟糕,但显然FTPlib在其STOR命令中没有接受多个文件。
这是一个示例ftp批处理文件。
*
OPEN inetxxx
myuser mypasswd
binary
prompt off
cd ~/my_reg/cronjobs/k_load/incoming
mput *.csv
bye
如果以上内容位于名为“abc.ftp”的文件中 - 那么我的ftp命令就是
ftp -s abc.ftp
希望有所帮助。