python - 搜索字符串并在包含字符串的行之后打印 3 行
问题描述
我有这样的数据:
direct vectors
10.950000000 19.950000000 0.000000000 0.256410256 0.256410256 -0.256410256
0.000000000 31.950000000 15.950000000 -0.256410256 0.256410256 0.256410256
51.950000000 0.000000000 17.950000000 0.256410256 -0.256410256 0.256410256
direct vectors
1.950000000 1.950000000 0.000000000 0.256410256 0.256410256 -0.256410256 #print this line
0.000000000 1.950000000 1.950000000 -0.256410256 0.256410256 0.256410256 #print this line
1.950000000 0.000000000 1.950000000 0.256410256 -0.256410256 0.256410256 #print this line
length of vectors
0.50000000 0.50000000 0.50000000 0.007
0.48979592 0.48979592 0.48979592 0.007
0.47959184 0.47959184 0.47959184 0.007
0.46938776 0.46938776 0.46938776 0.007
我想在包含“直接向量”的行之后打印最后 3 行。我的代码不起作用:
op_file = open(filename, 'r')
data_lines = op_file.readlines()
re_vectors = re.compile("direct vectors")
i = 0
for line in data_lines:
if re_vectors.search(line):
matrix = []
for j in range(0, 3):
parameters = data_lines[i+j+1].split()
A = [float(parameters[0]), float(parameters[1]), float(parameters[2])]
matrix.append(A)
print(matrix)
我想要这样的输出:
1.950000000 1.950000000 0.000000000
0.000000000 1.950000000 1.950000000
1.950000000 0.000000000 1.950000000
多谢!
解决方案
你的代码永远不会改变i
,所以总是打印相同的行。尝试i
像这样递增:
op_file = open(filename, 'r')
data_lines = op_file.readlines()
re_vectors = re.compile("direct vectors")
i = 0
for line in data_lines:
if re_vectors.search(line) is not None:
matrix = []
for j in range(0, 3):
parameters = data_lines[i+j+1].split()
A = [float(parameters[0]), float(parameters[1]), float(parameters[2])]
matrix.append(A)
print(matrix)
i++
您的代码仍将打印两组三行(每个“直接向量”之后一组)。这与您问题中的描述不同。如果您只想要第二组三行(根据您的示例输出),那么@balderman 的答案会更好,并且具有更容易遵循的代码,并且如果您将其更改print(l)
为:
parameters = l.split()
print(' '.join(parameters[0:3]))
推荐阅读
- powershell - Azure DataLake gen2 Powershell 限制
- python - 使用循环进行协调检查数据框中的行值是否存在于另一个数据框中
- python - 如何测试使用 TimeSeriesSplit 训练的交叉验证的 sklearn.linear_model
- python - 如何将阵列从 9 列重塑为 3 列?
- php - php 页面上的 ASP Cookie
- javascript - 使用 Object.entries 时保留类型
- python - 创建一个可以作为设置读取和操作的文件
- javascript - 成功的 AJAX 响应函数输出为空
- python - 代码在 python 3.8 中不运行多处理函数
- python - 当我导入一个从另一个文件返回 2 个变量的函数时,我的一个 pygame 屏幕正在运行 2 次