从一些标准开始阅读

2024-04-20 08:46:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个巨大的数据文件:我需要提取以say U(1.0---)开头的行,而不考虑行号,因为行号随每次运行而变化。
我试过拆分和读取,但输出不可处理。有人能帮我吗?你知道吗


Tags: 数据文件say行号
3条回答

与manicphase的答案类似,使用Python的startswithstring方法来挑选您感兴趣的行。你知道吗

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)。你知道吗

  1. 必须读取文件(https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files
  2. 然后在直线上做一个循环,得到直线的第一部分。你知道吗
  3. 然后需要检查是否与为该任务设计的正则表达式匹配。你知道吗

希望对您有所帮助:)

对每行使用startswith()string方法,并将它们添加到单独的列表中进行分析

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

相关问题 更多 >