【发布时间】:2019-04-03 15:59:02
【问题描述】:
尝试使用正则表达式从 txt 文件中提取三个数据列表
文件结构 = 元数据、值(重复)
#
#text
#text
#
9.2318434E-5 -1.3870514E-9 1.0E-4 7.0E-5 9.2318434E-5 9.225606E-5 9.225606E-5 2.5E-4 2.5E-4
9.230842E-5 -1.3756367E-9 1.0E-4 7.0E-5 9.230842E-5 9.225539E-5 9.225539E-5 0.00225 0.00225
9.230592E-5 -1.3935526E-9 1.0E-4 7.0E-5 9.230592E-5 9.2255046E-5 9.2255046E-5 0.00275 0.00275
#
#text
#text
#
9.2318434E-5 -1.3870514E-9 1.0E-4 7.0E-5 9.2318434E-5 9.225606E-5 9.225606E-5 2.5E-4 2.5E-4
9.231593E-5 -1.3816212E-9 1.0E-4 7.0E-5 9.231593E-5 9.225253E-5 9.225253E-5 7.5E-4 7.5E-4
9.230592E-5 -1.3935526E-9 1.0E-4 7.0E-5 9.230592E-5 9.2255046E-5 9.2255046E-5 0.00275 0.00275
#
#text
#text
#
9.2318434E-5 -1.3870514E-9 1.0E-4 7.0E-5 9.2318434E-5 9.225606E-5 9.225606E-5 2.5E-4 2.5E-4
9.231593E-5 -1.3816212E-9 1.0E-4 7.0E-5 9.231593E-5 9.225253E-5 9.225253E-5 7.5E-4 7.5E-4
9.231343E-5 -1.3962527E-9 1.0E-4 7.0E-5 9.231343E-5 9.225581E-5 9.225581E-5 0.00125 0.00125
我一直在尝试以下
with open(file) as newfile:
data = re.findall(r'^([#][\n][0-9])[\s\S]*([\n][\n])$', newfile.read())
每个数据块都以 #\n[0-9] 开头并以 \n\n 结尾,然后我需要在开头和结尾之间取每个字符,因此是 [\s\S]*。似乎没有任何帮助会很好。
【问题讨论】:
-
我不明白你是想要完整的 3 行还是这 3 行中的每个数字?
-
我希望输出是一个包含三个元素的列表,其中包含一个包含该部分中所有数字的字符串,即 mylist = ["numbers\n numbers\n numbers\n", "numbers\n numbers \n 数字\n", "数字\n 数字\n 数字\n"]
-
感谢所有工作人员