阅读专门从一些标准开始的行

时间:2014-07-29 10:55:59

标签: python linux

我有一个庞大的数据文件:我需要提取以U(1.0 ----)开头的行,而不管行号是多少,因为行号因每次运行而异。
我尝试拆分和读取但输出无法处理。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

  1. 您必须阅读文件(https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files
  2. 然后通过直线循环并获得该行的第一部分。
  3. 然后,您需要检查是否与您为该任务设计的正则表达式匹配。
  4. 希望它可以帮助你:)

答案 1 :(得分:0)

在每一行上使用startswith()字符串方法,并将它们添加到单独的列表中进行分析

data = open("whatever").readlines()
results = []
for line in data:
   if line.startswith("U(1.0"):
      results.append(line)

答案 2 :(得分:0)

与manicphase的答案类似,使用Python的startswith字符串方法挑选出您感兴趣的行。

with open('mydata.txt') as data:
    for line in data:
        if line.startswith('U(1.0 '):
            # Do stuff here

比manicphase的解决方案更简单,更快,因为您不需要重新遍历列表,如果您有大量数据,可能会产生负面影响。

我没有足够的声誉评论manicphase的答案,所以我在这里做一个注释:1.0之后的空格分隔符很重要,如果数据可以有多个小数点(问题没有不要指定,否则它也可能与U(1.0234 xxxx)匹配。