查找运行是否在python中正确结束

时间:2014-09-25 11:10:45

标签: python

我正在尝试在许多文件中运行python脚本,并读取输出。 目前,它仅通过以下方式检查文件是否存在:

if file == "output":

但是此输出不能确认运行是否正确完成。运行正确完成后,文件的最后一行是: “这次演出结束于”

如何读取这个最后一行文件? 凭借我目前在python(新手)方面的知识,我设法做到了:

#!/usr/bin/python3
import os
input = "FeMnPSi_EOS_10."
for subdirs, dirs, files in os.walk(input):
    for file in files:
        if file == "out-Dy-eos2":
            print("file found")
            ifile=input+"/"+file
            with open(ifile, "r") as if1:
                for line in if1:
                    if "This run finished at" in line:
                        print("Ends Properly")

此代码的问题是:

  • 它不知道,如果“此运行结束于”行是 倒数第二行的文件。
  • 我不确定,但猜猜,这里 python必须顺序读取文件....这10000多行 每个文件。

那么,我是否可以更好地检查线条是否存在,以及最后两行,而不读取整个文件?

1 个答案:

答案 0 :(得分:-1)

您缺少的位是if1.readlines(),它以字符串列表的形式读取整个文件。然后,您可以使用切片表示法访问last-but-one元素。

with open(ifile, 'rb') as if1:
    if "This run finished at" in if1.readlines()[-2]
        print("Ends Properly")