Я пытаюсь запустить скрипт python в нескольких файлах и прочитать вывод для. В настоящее время он проверяет только если файл существует по:найти, если запуск заканчивается правильно в python
if file == "output":
Но этот выход dosn't подтвердить, если пробег закончен правильно. Когда запуск закончен правильно, строка последнего файла имеет следующий вид: «Этот пробег завершен в«
Как я могу прочитать этот файл с последней строкой? С моим текущим знанием в питона (начинающий), мне удалось сделать:
#!/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+ строк для каждого файла.
Итак, могу ли я лучше проверить, существует ли линия, и между двумя последними линиями, не читая весь файл?
здесь [как читать последние несколько строк из файла] (http://stackoverflow.com/a/260433/4279). Хотя 10K + мало, поэтому вы можете просто 'if1.readlines() [- 2:]', чтобы получить последние 2 строки. – jfs
@ J.F.Sebastian OP не сказал, как долго длились его линии, и он просит эффективный метод. – simonzack
@simonzack: И? вы заметили ссылку в моем предыдущем комментарии? – jfs