2010-03-18 2 views
3

Как я могу открыть файл в python и написать ему несколько раз?Python: пишите в файл несколько раз без открытия/закрытия для каждой записи

Я использую распознавание речи, и я хочу, чтобы один файл изменил его содержимое на основе того, что я говорю. Другое приложение должно быть в состоянии прочитать этот файл. Есть ли способ сделать это, или мне нужно открыть/закрыть для каждой записи?

+0

Как «другое приложение» знает, что вы закончили говорить? Что заставляет его читать этот файл? –

+0

Это не так, я использую распознавание голоса в играх, поэтому я посылаю приложение для нажатия клавиши (wolfenstein: вражеская территория) и что keypress выполняет содержимое файла под вопросом – grizwako

ответ

5

Вы можете просто сохранить объект файла и написать ему, когда захотите. Возможно, вам понадобится очистить его после каждой записи, чтобы сделать вещи видимыми для внешнего мира.

Если вы делаете записи из другого процесса, просто откройте файл в режиме добавления («a»).

+0

Спасибо, flush() - это то, что мне нужно. – grizwako

1
f = open('myfile.txt','w') 
f.write('Hi') 
f.write('Hi again!') 
f.write('Is this thing on?') 
# do this as long as you need to 
f.seek(0,0) # return to the beginning of the file if you need to 
f.close() # close the file handle 
+1

Возможно, потребуется 'f.seek (0,0)' для обратной перемотки назад к началу. –

+1

Как насчет флеша каждый раз? Это не должно повредить производительность, когда входной сигнал настолько медленный. –

+2

Никогда не зависеть от прямого вызова 'close'. ** Всегда ** используйте диспетчер контекста ('with open ('myfile.txt', 'w') как f'). –

Смежные вопросы