【发布时间】:2022-01-02 06:28:05
【问题描述】:
我用谷歌搜索,但我只能找到如何上传一个文件...我正在尝试将所有文件从本地目录上传到远程 ftp 目录。任何想法如何实现这一目标?
【问题讨论】:
我用谷歌搜索,但我只能找到如何上传一个文件...我正在尝试将所有文件从本地目录上传到远程 ftp 目录。任何想法如何实现这一目标?
【问题讨论】:
用循环?
编辑:在一般情况下,仅上传文件如下所示:
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'))
显然,如果您只是像这样保留文件名,则需要注意名称冲突。
【讨论】:
查看Python-scriptlines required to make upload-files from JSON-Call 和下一个FTPlib-operation: why some uploads, but others not?
虽然起始位置与您的问题不同,但在第一个 url 的 Answer 中,您会看到一个示例构造,由 ftplib 上传一个 json 文件和一个 xml 文件:查看 scriptline 024 和进一步。
在第二个网址中,您可以看到与上传更多文件相关的其他方面。
也适用于除 json 和 xml 之外的其他文件类型,显然在定义和实现 FTP_Upload 功能的 2 个最后部分之前具有不同的“条目”。
【讨论】:
创建一个 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
希望对您有所帮助。
【讨论】: