列出 Torrent 内的文件
Torrent 文件本质上是存储有关要通过 P2P 下载的一组文件信息的容器。
不幸的是,简单地列出存储在 torrent 中的文件并不容易。使用我们的 python 脚本 torrentls.py 你可以轻松完成该任务。
首先安装依赖项
install_deps.sh
pip install -U bencode之后,你可以使用类似 python torrentls.py <torrent 文件> 的 shell 命令轻松运行脚本。torrentls.py 基于 argparse,因此它提供内置帮助。此外,你可以将其用作基本解析 torrent 文件的库。
torrentls.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import bencode
import itertools
__author__ = "Uli Köhler"
__copyright__ = "Copyright 2014 Uli Köhler"
__license__ = "Apache License v2.0"
__version__ = "0.1"
def listTorrent(filename):
"列出单个 torrent 内的文件路径"
with open(filename, "rb") as fin:
torrent = bencode.bdecode(fin.read())
#虽然 path 元素通常是单元素列表,但我们支持任意长度
return itertools.chain(*(f["path"] for f in torrent["info"]["files"]))
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(description="列出 torrent 文件中的文件名")
parser.add_argument("torrent", help="要打印的 torrent 文件")
args = parser.parse_args()
#打印 torrent 中的文件,每行一个
for filename in listTorrent(args.torrent):
print(filename)Check out similar posts by category:
Python
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow