我有这样一个文本文件:
1156348 epsilon[998] B 1e-08
1156349 epsilon[999]B 1e-08
1156350 epsilon[1001]
B 1e-08
1156351 epsilon[1002]
B 1e-08
1156352 epsilon[1003]
B 1e-08
如您所见,最后3行与前2行略有不同。我如何将这些B
带到上面这行:
1156348 epsilon[999] B 1e-08
1156349 epsilon[1000]B 1e-08
1156350 epsilon[1001]B 1e-08
1156351 epsilon[1002]B 1e-08
1156352 epsilon[1003]B 1e-08
目的是获取每行的数字。这是一个更大文件的一部分。我发现所有的行都包含epsilon,然后抓取数字1e-08
。但自从指数达到1000后,它们就进入了市场。下一行我抓不到
a1=[]
f1 = open('/Users/naghmeh/Documents/skill_trend/optimization/typex2.txt', "r")
for line in f1:
if "epsilon" in line:
a1.append(line)
f.close()
t=[float(s.split()[3]) for s in map(str.strip, a1)]
你的尝试只会挑出其中有“epsilon”的行。相反,您希望收集所有行,但如果没有“epsilon”,则追加到前一行
如果该行不包含“epsilon”,则会将该行粘贴到前一行的末尾(
a1[-1]
,即a1
中到目前为止的最后一个元素),否则会复制现有逻辑如果第一行不包含“epsilon”,这将崩溃,但我将其留给您,以使其对您的用例具有健壮性
可能避免硬编码复杂的路径;在当前目录中查找文件,或者让脚本接受输入文件名作为命令行参数
相关问题 更多 >
编程相关推荐