如何从txt文档中提取括号分隔的多个数字并存入Python列表
实现方案
用Python标准库的re正则模块配合列表推导式即可实现,代码简洁且符合Python最佳实践:
完整代码
import re # 读取本地txt文件并提取ID with open("你的文件路径.txt", "r", encoding="utf-8") as f: file_content = f.read() # 提取所有方括号内的数字并转为整型 id_list = [int(num) for num in re.findall(r"\[(\d+)\]", file_content)]
说明
- 使用
with上下文管理器处理文件读取,无需手动调用close()方法关闭文件,是Python官方推荐的文件操作写法 - 正则表达式
r"\[(\d+)\]"中:\[和\]是转义字符,匹配字面量的方括号(\d+)是捕获组,匹配方括号内的连续数字,re.findall方法会直接返回所有捕获组匹配到的字符串列表
- 列表推导式将所有字符串格式的数字批量转为整型,一步得到目标列表
精准匹配优化
如果你需要避免其他位置方括号内的数字被误提取(比如前面[some_strings]中如果存在数字的场景),可以调整正则规则,只匹配id:后面的方括号内容:
id_list = [int(num) for num in re.findall(r"id:\[(\d+)\]", file_content)]
运行后得到的id_list就是你需要的[1227194, 1227195, 1227196]。
内容的提问来源于stack exchange,提问作者Hugo Wolf
相关产品推荐
相关产品推荐

