问题标签 [ftplib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5002 浏览

php - 通过 FTP 将文件复制到服务器后的文件大小差异

我创建了一个 PHP 脚本来更新位于本地目录中的 Web 服务器。我正在将脚本迁移到 Python 中。它在大多数情况下都可以正常工作,但是在执行 PUT 命令之后,文件的大小似乎发生了变化。因此,文件的大小与服务器上文件的大小不同。

一旦我再次从 FTP 服务器下载文件,唯一的区别就是 CR/LF 标记。这让我很恼火,因为同一个脚本正在比较要更新的文件的大小。此外,如果它意味着什么,该脚本可以通过 ftp_put 在 PHP 中完美运行。

有什么建议么?

0 投票
7 回答
12110 浏览

python - 如何解析文件列表以仅获取 Python 中的文件名?

因此,假设我正在使用 Python 的ftplib从 FTP 服务器检索日志文件列表。我将如何解析该文件列表以仅获取列表中的文件名(最后一列)?有关示例输出,请参见上面的链接。

0 投票
4 回答
1571 浏览

python - 防止 ftplib 下载正在进行的文件?

我们有一个 ftp 系统设置来监控/从不受我们控制的远程 ftp 服务器下载。该脚本连接到远程 ftp,并获取服务器上文件的文件名,然后我们检查它是否已下载。如果尚未下载,则我们下载文件并将其添加到列表中。

我们最近遇到了一个问题,远程 ftp 端的某个人将复制一个巨大的单个文件(> 1GB),然后脚本将唤醒并看到一个新文件并开始下载正在复制的文件。

检查这个的最好方法是什么?我想抓住文件大小等待几秒钟再次检查文件大小,看看它是否增加了,如果没有,那么我们下载它。但是由于时间很重要,我们不能为每个文件集等待几秒钟,看看它的文件大小是否增加了。

最好的方法是什么,目前一切都是通过pythons ftplib完成的,除了使用上述方法之外,我们怎么能做到这一点。

让我再次重申这一点,我们对远程 ftp 站点的控制为 0。

谢谢。

更新1:

我在想如果我尝试重命名它会怎样......因为我们对 ftp 拥有完全权限,如果文件上传正在进行中,重命名命令会失败吗?

我们在这里没有任何真正的选择……是吗?

UPDATE2:这里有一些有趣的东西,我们测试过的一些 ftps 似乎会在传输开始后自动分配空间。

例如,如果我将一个 200mb 的文件传输到 ftp 服务器。如果我连接到 ftp 服务器并在上传时进行大小调整,则传输处于活动状态。它显示大小为 200mb。即使文件只完成了 10%。

权限似乎也是随机设置的,IIS 附带的 FTP 服务器在文件复制完成后设置权限。而其他一些较旧的 ftp 服务器会在您发送文件时立即设置它。

:'(

0 投票
2 回答
1253 浏览

python - 下载 zip 文件并使用 Python 将其写入磁盘有什么特殊技巧吗?

我正在使用 Python 的 ftplib 从远程 FTP 站点上传一个 zip 文件。然后我尝试将其写入磁盘。文件写入有效,但是大多数使用 WinZip 或 WinRar 打开 zip 的尝试都失败了;两个应用程序都声称文件已损坏。然而奇怪的是,当右键单击并尝试使用 WinRar 提取文件时,文件被提取。

所以需要明确的是,文件写入将起作用,但不会在流行的 zip 应用程序中打开,但使用这些相同的应用程序解压缩。请注意,Python zipfile 模块永远不会无法提取 zip。

这是我用来从 FTP 站点获取 zip 文件的代码(请忽略错误的标签,这不是问题)。

0 投票
2 回答
1292 浏览

python - 在 python 中使用 storbinary 部分上传

我已经编写了一些 python 代码来使用下载图像

然后使用上传到 FTP 站点

但我有一个问题。有时图像文件只是部分上传,所以我得到的图像底部 20% 左右被截断。我检查了本地下载的版本,并且已经成功下载了整个镜像,这让我相信这是 storbinary 的问题。我相信我正在正确打开和关闭所有文件。有没有人知道为什么我要使用 storbinary 进行部分上传?

更新: 当我在 Python shell 中运行命令时,上传成功完成,我不知道为什么它与作为脚本运行时不同......

0 投票
2 回答
6782 浏览

python - 在 python 中通过 FTP 写入文件

所以我关注了这个页面上的文档:http: //docs.python.org/library/ftplib.html#ftplib.FTP.retrbinary

也许我对“retrbinary”的作用感到困惑……我认为它会检索二进制文件,然后我可以从那里打开它并写出该文件。

这是给我带来问题的线...

我不明白的是我想写到 temp.txt,所以我在尝试

但我遇到了错误,我能够建立一个 FTP 连接,执行 pwd()、cwd()、rename() 等。

ps 我正在尝试尽可能多地用谷歌搜索,谢谢!

0 投票
15 回答
19600 浏览

python - ftplib 检查文件是否是文件夹?

如何检查远程 ftp 上的文件是否是文件夹或不使用 ftplib?

我现在最好的方法是做一个 nlst,并遍历每个文件的调用大小,如果文件出错,那么它是一个文件夹?

有没有更好的办法?我无法解析列表的输出,因为大约有十几个不同的 ftp 服务器(许多非常旧。)

我应该怎么办?

0 投票
2 回答
4691 浏览

python - 用于 FTP 上传/下载的 Python 库?

好的,有点前进:

我们有一个用 python 编写的服务/守护进程来监控远程 ftp 站点。这些站点不在我们的指挥之下,其中一些我们没有删除/重命名/写入权限,有些还运行着非常旧的 ftp 软件。这样某些命令不起作用。这些 ftp 中的任何一个都没有标准化,而且它们超出了我们的控制(政府)。

大约一年前,我为内部编写了一个 ftp 包装器库,它基本上添加了诸如恢复上传/恢复下载/验证文件当前未写入等内容。问题是我们很快发现,由于太多运行 werid/非标准软件的 ftp 服务器,我们一直在与包装库/ftplib 进行斗争。

基本上我已经放弃了ftplib。有替代方案吗?我查看了大多数 ftp 替代方案,它们都缺少一个或另一个关键功能组件。

无论选择是什么,它都必须为 python 2.5.2 运行(我们无法更改)。并且必须在 Linux/Windows/HP-UX 上运行。

更新:

对不起,我忘了告诉你我看过的替代方案:

  1. ftputil,问题是它不支持恢复上传/下载以及部分下载文件等给定偏移量的东西。
  2. Pycurl 看起来不错,我会再看一遍。
0 投票
3 回答
13595 浏览

python - Python ftplib - 上传多个文件?

我用谷歌搜索,但我只能找到如何上传一个文件......我正在尝试将所有文​​件从本地目录上传到远程 ftp 目录。任何想法如何实现这一目标?

0 投票
6 回答
17750 浏览

python - Python FTP 应用程序中的代理

我正在用 Python ftplib 开发一个 FTP 客户端。如何为其添加代理支持(我见过的大多数 FTP 应用程序似乎都有它)?我特别在考虑 SOCKS 代理,还有其他类型... FTP、HTTP(甚至可以将 HTTP 代理与 FTP 程序一起使用吗?)

任何想法如何做到这一点?