Python如何读取txt内路径批量提取文件内容推送至Telegram
实现方案
你现有代码仅完成了路径清单文件的读取,缺少逐行拆分路径、逐个读取目标文件、对接Telegram接口发送内容的逻辑,按以下逻辑补全即可:
- 读取路径清单文件时按行拆分,自动过滤空行、去除每行首尾的换行符和空白字符
- 遍历每个有效文件路径,读取对应文件内容,增加异常捕获避免单个文件读取失败导致整个脚本崩溃
- 拼接所有文件的读取结果,调用Telegram机器人接口发送汇总内容
完整可运行代码
使用前先替换代码里的两个配置项为你自己的实际参数:
YOUR_TELEGRAM_BOT_TOKEN:你的Telegram机器人TokenYOUR_CHAT_ID:接收消息的用户/群组/频道ID
import requests # 基础配置 PATH_LIST_FILE = "/home/admin/files/myfiles.txt" TG_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" TG_CHAT_ID = "YOUR_CHAT_ID" def collect_all_file_content(path_list_file): content_collector = [] # 读取存了所有目标路径的清单文件 with open(path_list_file, 'r', encoding='utf-8') as f: raw_paths = f.readlines() for raw_path in raw_paths: file_path = raw_path.strip() # 跳过空行 if not file_path: continue try: with open(file_path, 'r', encoding='utf-8') as target_file: file_content = target_file.read() content_collector.append(f"===== 文件路径:{file_path} =====\n{file_content}\n") except Exception as e: content_collector.append(f"===== 文件路径:{file_path} 读取失败,错误信息:{str(e)} =====\n") return "\n".join(content_collector) def send_msg_to_telegram(msg_text): request_url = f"https://api.telegram.org/bot{TG_BOT_TOKEN}/sendMessage" request_data = { "chat_id": TG_CHAT_ID, "text": msg_text } response = requests.post(request_url, data=request_data) response.raise_for_status() if __name__ == "__main__": total_content = collect_all_file_content(PATH_LIST_FILE) if total_content.strip(): send_msg_to_telegram(total_content) else: print("未读取到任何有效文件内容")
补充说明
- 你的
myfiles.txt无需调整格式,每行写一个目标文件绝对路径即可,脚本会自动忽略空行 - 单个文件读取失败(比如路径错误、权限不足)不会中断脚本运行,错误提示会一并汇总到发送的消息里方便排查
- 如果汇总后的内容长度超过Telegram单条消息4096字符的限制,可以在发送逻辑中增加内容切片分条发送的处理,常规小文件场景下上述代码可直接使用
内容的提问来源于stack exchange,提问作者rodskies
相关产品推荐
相关产品推荐

