位置:首页 > Python > Telegram群组被封禁用户名单如何导出为本地文件

Telegram群组被封禁用户名单如何导出为本地文件

时间:2026-08-17  |  作者:风起客  |  阅读:0

本文详解如何使用Telethon库将Telegram超级群组中被踢出/封禁的用户列表导出为TXT或CSV文件,涵盖代码修正、文件写入逻辑、数据结构处理及常见注意事项。

如何将Telegram群组中被封禁用户导出为本地文件

本文详解如何使用Telethon库将Telegram超级群组中被踢出/封禁的用户列表导出为TXT或CSV文件,涵盖代码修正、文件写入逻辑、数据结构处理及常见注意事项。

用 Telethon 拉取被封禁(kicked)用户时,client.get_participants(..., filter=ChannelParticipantsKicked) 返回的其实是 User 对象列表,不是字符串,也不是现成的用户名。这恰恰是很多初学者最容易踩中的一个坑。要是直接写 print(member),或者更进一步用 file.write(member),大概率就会碰上 TypeError,原因很简单:User 对象本身不能直接写进文本文件。正确做法是把需要的字段明确取出来,比如 usernameidfirst_namelast_name,同时还得把空值情况处理好,尤其像 user.username is None 这类情况,不能忽略。

以下是完整、可运行的异步导出示例(支持 TXT 和 CSV 格式):

from telethon import TelegramClient
from telethon.tl.types import ChannelParticipantsKicked
import csv

api_id = 12345678# 替换为你的 API ID
api_hash = 'your_api_hash_here'# 替换为你的 API Hash
group_id = -1001234567890# 注意:超群组需用 -100 开头的 int 形式 ID

client = TelegramClient('session_name', api_id, api_hash)

async def export_kicked_users():
await client.start()

# 获取被封禁成员(支持分页,避免限流)
kicked_members = await client.get_participants(
group_id,
filter=ChannelParticipantsKicked,
limit=5000# 显式限制,避免超时或内存溢出
)

#  方案一:导出为纯文本(每行:ID | Username | Name)
with open('kicked_users.txt', 'w', encoding='utf-8') as f:
f.write(f"{'ID':<12} | {'Username':<20} | {'Name'}n")
f.write("-" * 55 + "n")
for user in kicked_members:
uid = str(user.id)
username = user.username or ""
name = f"{user.first_name or ''} {user.last_name or ''}".strip() or "[deleted]"
f.write(f"{uid:<12} | {username:<20} | {name}n")

#  方案二:导出为 CSV(更易导入 Excel / 数据分析工具)
with open('kicked_users.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['user_id', 'username', 'first_name', 'last_name', 'is_deleted'])
for user in kicked_members:
writer.writerow([
user.id,
user.username or "",
user.first_name or "",
user.last_name or "",
user.deleted# True 表示已删除账号(幽灵用户)
])

print(f" 成功导出 {len(kicked_members)} 名被封禁用户")
print("→ 文件已保存至当前目录:kicked_users.txt 和 kicked_users.csv")

with client:
client.loop.run_until_complete(export_kicked_users())

重要注意事项

  • 权限与认证:首次运行会弹出 Telegram 登录二维码,需手机确认;确保账号有该群组的管理员权限(仅管理员可查看被封禁列表)。
  • ID 格式group_id 必须为整数类型,如 -1001234567890;若你拿到的是字符串 "-123456789",请转为 int(),且注意超群组 ID 前缀为 -100
  • 性能优化:5000+ 用户建议启用 limit 参数并考虑分页(offset + 循环),避免单次请求失败;也可添加 sleep(1) 防触发反爬。
  • 隐私与合规:导出用户数据需符合 Telegram Terms of Service 及当地隐私法规;禁止用于骚扰、营销或未经授权的数据传播。

程序跑完后,生成的 kicked_users.txtkicked_users.csv 会直接出现在 Python 脚本所在的目录里。想确认文件是否已经落地,很简单:在终端执行 ls(macOS/Linux)或 dir(Windows)就能看到。后续如果还要继续清洗或做分析,用 Pandas 读取这个 CSV 会更顺手,不管是去重、统计,还是可视化处理,都比较方便。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多