我有一个文本文件,我想提取包含某些短语(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
答案 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