Telegram超级群组已封禁用户导出结果的获取路径与保存方法咨询
Telegram超级群组已封禁用户导出结果的获取路径与保存方法咨询
嘿,我看你已经在尝试用Telethon导出Telegram超级群组里的封禁用户了,但还在纠结输出去哪、怎么存成想要的CSV或数据文件对吧?我来给你一步步理清楚~
首先得先搞懂你当前代码的输出去哪了:
你写的两段代码里用的print()语句,默认是直接输出到运行代码的终端/命令行窗口里的,不会自动生成文件,所以你在文件夹里找不到很正常。而且第二段代码里的print(TipyWolf, 502264640)明显写错了,应该是打印member相关的信息才对,不然输出的都是固定内容,根本不是封禁用户的数据哦。
接下来给你两种解决方法,帮你把数据保存成文件:
方法一:简单终端重定向(适合快速导出)
如果你不想改代码,直接在运行脚本的时候,给命令加个重定向参数,就能把终端里的所有输出存成文本文件:
- Windows命令提示符:运行
python your_script_name.py > banned_users.txt - Linux/macOS终端:同样用
python3 your_script_name.py > banned_users.txt
这样一来,原本要显示在终端里的内容,就会被自动保存到当前目录的banned_users.txt文件里。要是想追加内容(比如多次导出合并),就把>改成>>。
方法二:代码直接写入CSV(推荐,结构化保存数据)
这个方法能帮你生成规范的CSV文件,方便后续处理,比如筛选用户ID、用户名这些信息。我帮你修正了第二段的代码,加上了CSV写入的逻辑:
from telethon.tl.types import ChannelParticipantsKicked from telethon.sync import TelegramClient import csv import os api_id = ######### api_hash = '################################' group_id = '-##############' client = TelegramClient('apptitle', api_id, api_hash) async def main(): await client.start() # 打印当前工作目录,方便你找文件 print(f"当前脚本工作目录:{os.getcwd()}") kicked_members = await client.get_participants(group_id, filter=ChannelParticipantsKicked) # 在工作目录生成CSV文件 with open('banned_users.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) # 自定义表头,你可以根据需要加字段,比如昵称、封禁时间(如果能获取到的话) writer.writerow(['用户ID', '用户名', '是否为已删除账号']) for member in kicked_members: # 提取用户的关键信息,Telethon的member对象里还有很多属性,你可以按需调整 username = member.username if member.username else '无用户名' writer.writerow([member.id, username, member.deleted]) print(f"导出完成!共导出{len(kicked_members)}名封禁用户,文件已保存到上面显示的工作目录中,名为banned_users.csv") with client: client.loop.run_until_complete(main())
运行这段代码后,CSV文件会直接生成在脚本的当前工作目录里,代码里的os.getcwd()会在终端打印出这个路径,你直接去这个路径找banned_users.csv就行。
最后再提个小提示:如果你还是找不到文件,就去看终端里打印的当前脚本工作目录路径,文件100%在那里~
备注:内容来源于stack exchange,提问作者TipsyWolf
相关产品推荐
相关产品推荐

