python - 读取文件并在匹配后执行下一行的操作
问题描述
我正在尝试将制表符分隔的文本文件读入 python。但是该文件有多个子标题。像这样的东西:
a
[1,2,3]
[2,3,4]
[3,2,5,6]
b
[1,2,3]
[2,6,4]
[7,5,6]
我正在尝试编写一个将子标题作为参数的函数并执行一个while循环,直到下一个子标题和子标题下方的行作为列表返回。在伪代码中,这就是我的想法:
def func(sub-heading):
outputlist = [ ]
with open(filepath) as file:
for line in file:
if sub-heading:
go next line
while not sub-heading:
outputlist.append(line.rstrip())
return outputlist
所以如果我调用 func(a),我会得到列表
[ [1,2,3], [2,3,4], [3,2,5,6] ]
但是一旦找到子标题,我就找不到一种方法让外观进入下一行。
任何帮助将不胜感激
编辑以获取更多信息
解决方案
对于给定的示例,以下将起作用。这仅打印不是子标题的行:
import re
def func():
pattern = re.compile("\[(.*)\]")
with open('your_file.txt', 'r') as file:
for line in file:
if not pattern.match(line):
continue # this is the subheading
else:
print(line)
func()
鉴于your_file.txt
如下:
a
[1,2,3]
[2,3,4]
[3,2,5,6]
b
[1,2,3]
[2,6,4]
[7,5,6]
推荐阅读
- reactjs - 当服务器返回 gzip 文件时,如何下载文件以做出反应?
- javascript - 如何在正确的时间和星期几切换 div
- javascript - Bot Framework 使用空内容更新 Teams 活动
- intellij-idea - 什么是“尽可能使用模块目标 JDK 中的编译器”选项?
- node.js - 使用 node.js 从 FastAPI 服务器获取数据
- firebase - 如何仅存储日期,而不是日期时间
- python - 处理数据集中的 NaN 值以进行关键点坐标检测
- php - 在 wordpress 插件“wp paypal 购物车”中配置通知网址
- redcap - 如何根据 REDCap 中的计算数字自动选择分类变量?
- node.js - 如何在 Firebase 函数中拥有多个 Firebase 数据库侦听器和“exports.pushNotification”