Как заставить программу подождать

Здравствуйте! Подскажите пожалуйста, есть ли способ, с помощью которого можно заставить программу подождать, пока запишется один файл, прочитается другой, а только потом совершать какие-то действия?Суть проблемы вот в чем: 1. считывается одна строка из файла0 2. считанная строка записывается в файл1 3. файл1 прогоняется через стороннее приложение, получается выходной файл2 4. считывается файл2, берется нужная информация и записывается в результирующий файл3Стороннее приложение не успевает записывать в файл2 информацию. Получается, что 1я строка прогоняется через это приложение, но на шаге 4 файл2 еще пустой. В результате в файл3 не записывается ничего. А потом строке на 10й алгоритм доходит до шага 4, а там оп - и записана строка номер 3. Он ее считывает и пишет в результат. В итоге очень много строк теряется.Есть ли какой-то способ сказать python "если файл2 еще пуст, подожди, пока в него что-то запишется, а потом выполняй остальные шаги"?
3 ответа

a = open('1.txt').read(1)
if a: 
    print 1
else: 
    print 0


Apiaceae. Если стороннюю программу вызывать из скрипта для обработки файла то пойдойдет:
from subprocess import Popen, PIPE
...
cmd = 'programm fileX.txt'
proc = Popen(command, shell=True, stdout=PIPE)
proc.wait()
...


если файл2 еще пуст, подожди, пока в него что-то запишется, а потом выполняй остальные шаги
import os
 
myfile = "file2.txt"
 
def do_somethind():
    pass
 
i_wait = True
 
while i_wait:
    if os.stat(myfile)[6] > 0:
        i_wait = False
 
do_something()
Вместо os.stat можно использовать также os.path.getsize. На счёт производительности понятия не имею, может ли подобный цикл, как в javascript, убить процессор. Но можно задать интервал временной (time.sleep (всё приложение уснёт)), или threading модуль использовать, если нужно делать что-то ещё. И это только на вскидку.