Python ftplib - 如何上传多个文件?
我在网上搜索过,但只找到怎么上传一个文件的教程... 我想把本地文件夹里的所有文件上传到远程的ftp文件夹。有没有什么好办法可以做到这一点?
3 个回答
-3
创建一个FTP批处理文件,里面列出你需要传输的文件。然后用Python来执行ftp.exe,并加上“-s”这个选项,把文件列表传进去。
这样做虽然有点麻烦,但看起来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
希望这能帮到你。
0
看看这个链接:Python脚本行需要从JSON调用上传文件,还有这个链接:FTPlib操作:为什么有些上传成功而有些不成功?
虽然这两个问题的出发点不同,但在第一个链接的回答中,你可以看到一个示例,展示了如何使用ftplib上传一个json文件和一个xml文件:可以查看第024行及之后的内容。
在第二个链接中,你会看到一些与上传多个文件相关的其他方面。
这些内容也适用于json和xml以外的其他文件类型,当然在最后两个部分之前需要有不同的“入口”,这些部分定义并实现了FTP上传功能。
16
用循环来处理吗?
补充说明: 在通用情况下,只上传文件的代码大概是这样的:
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'))
显然,如果你只是保留文件名,就需要注意文件名冲突的问题。