如何在指定条件下读取python中的文本文件?

时间:2019-11-06 07:56:45

标签: python

我有一个文本文件,我想提取包含某些短语(ATOMIC_POSITIONS(埃)和K_POINTS(自动))的行号。

n = -1
with open(filename) as f:
     for line in f:
          n += 1
          if line  == "ATOMIC_POSITIONS (angstrom)":
               print('test1')
               start = n
          elif line  == "K_POINTS (automatic)":
               print('test2')
               end = n

print(start, end)

我的问题是python不在if语句内(即未打印test1和test2)。

但是我确定文件名包含短语,这只是文件名的一小部分:

0.000000613 0.000000613 1.022009120

ATOMIC_POSITIONS(埃)

C 1.696797551 1.714436737 -0.068349117

1 个答案:

答案 0 :(得分:0)

简单地说:您的条件不满足。 "=="检查是否相等,出于多种原因,这可能不适用于您的情况(请参见评论)。

在检查文件行中的字符串时,我会尝试这样做:

n=-1
with open(filename) as f:
     for line in f:
          n += 1
          if  "ATOMIC_POSITIONS (angstrom)" in line:
               print('test1')
               start = n