Я хочу написать идентификатор процесса в файл при запуске моей программы, поэтому я написал этот код, но этот код записывает pid в файл всякий раз, когда останавливает процесс.как писать в файл в multiprocess в python
from multiprocessing import Process
from os import getpid
def f():
file = open('udp.pid', 'w')
file.write(str(getpid()))
file.close()
while True:
# a socket infinity loop
pass
if __name__ == '__main__':
p = Process(target=f,)
p.start()
Как написать pid в файл в многопроцессорном режиме?
UPDATE:
Я использую Python 3.4 на окнах 8.1
Я протестировал его и получил эту ошибку «ValueError: не может иметь небуферизованный ввод/вывод текста» –
ничего не произошло! Я использую python-3.4, меняю 'w' на 'wb' и "file.write (str (getpid())) "to" file.write (str (getpid()). encode ('utf-8)) ", но ничего не изменилось, программа пишет pid в файл после завершения процесса! –
Я тестировал код на OS X. Он работает! Событие, на котором ваш код написал pid немедленно, что вы ожидали. – han058