python中本地文件、ftp、http的统一目录树遍历

发布于 2025-01-08 12:17:17 字数 1000 浏览 1 评论 0原文

在我的 testkernel 程序中,我想通过各种协议遍历目录树。我想我想要的是类似 os.walk 的东西,但它适用于 ftp,也适用于典型的 http 目录列表(例如 http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.2-precise/)。这本着 openanything.py 的精神

对于 FTP 遍历,我发现了几个选项,包括 < a href="http://pypi.python.org/pypi/ftptool/0.5.1" rel="nofollow">ftptool,以及 ftputil 模块,其优点是在 Ubuntu 中。我已经使用 Beautiful Soup 实现了自己的非常简单的 http 目录列表递归遍历。但在我将它们与 os.walk 结合在一起之前,我想知道是否已经完成了。

我知道 http 遍历的语义不像文件系统和 ftp 那样定义明确,所以我想我必须猜测目录是由带有尾部斜杠的 URL 指示的,该斜杠扩展了目录的 URL。我必须小心避免无限行走。但即使对于 os.walk 的一个子集(例如仅自上而下),这种事情似乎也很有用。

这已经做到了吗?有什么建议吗?

In my testkernel program I'd like to walk directory trees via a variety of protocols. What I think I want is something like os.walk, but which works for ftp, and for typical http directory listings also (like http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.2-precise/). This is in the spirit of openanything.py

For FTP walking I found several options, including ftptool, and the ftputil module which has the advantage of being in Ubuntu. I've already implemented my own very simple recursive walk of http directory listings, using Beautiful Soup. But before I combine them together with os.walk, I wonder if it has been done already.

I know the semantics of http walking are not well-defined like they are for file systems and ftp, so I guess I'll have to guess that directories are indicated by a URL with a trailing slash which extends the URL of the directory. And I'll have to be careful to avoid infinite walks. But even for a subset of os.walk (e.g. only topdown), this sort of thing seems useful.

Has this been done? Any advice?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤城病女 2025-01-15 12:17:17

好吧,我编写了一段代码,它实际上遍历 Web 目录并下载文件:
(虽然这段代码可能需要改进,例如图像下载,pdf下载等),
但无论如何,这里是源/模块:

从远程源递归下载文件和目录

Well, I wrote a piece of code which actually walks through web directories and downloads the files:
(although this piece code could need improvement like image downloading, pdf download etc),
but anyway here is the source/module:

Download files and dirs recursively from a remote source

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文