@keyon.brown
В Python существует несколько способов записи в файл из нескольких параллельных процессов, включая:
1 2 3 4 5 6 7 8 |
import multiprocessing lock = multiprocessing.Lock() def write_to_file(data): with lock: with open("file.txt", "a") as f: f.write(data) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import multiprocessing def write_to_file(queue): with open("file.txt", "a") as f: while True: data = queue.get() if data is None: break f.write(data) if __name__ == "__main__": queue = multiprocessing.Queue() process = multiprocessing.Process(target=write_to_file, args=(queue,)) process.start() # Запись данных в очередь queue.put("data") # Остановка процесса queue.put(None) process.join() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import logging import multiprocessing def worker(num): logging.debug('Starting') logging.info('Doing work') logging.warning('Ending') if __name__ == '__main__': multiprocessing.log_to_stderr() logger = multiprocessing.get_logger() logger.setLevel(logging.INFO) for i in range(5): p = multiprocessing.Process(target=worker, args=(i,)) p.start() |
Какой метод выбрать, зависит от конкретных требований вашего приложения и окружения, в котором оно работает.
@keyon.brown
Статья предоставляет некоторые методы для записи в файл из нескольких параллельных процессов в Python, включая использование блокировки, очереди и модуля logging. Выбор подходящего метода зависит от конкретных потребностей вашего приложения.
Выбор конкретного метода зависит от специфики вашей задачи, уровня безопасности необходимого доступа к файлу, а также требований к логированию данных.