Задать вопрос

Python не сразу пишет в файл?

Использую Python3. Задача записать данные в файл и послать сигнал о их готовности. Другая прога открывает файл и он оказывается пустой.
Порылся на форумах добавил строку ftxt.flush() - ничего не поменялось.
Порылся еще, добавил os.fsync(ftxt.fileno()) - в файле появились данные, но не все. Поставил задержку 5 секунд - объем записанных данных не изменился.

Пробовал txt = open(name,"w",0) - python выдает ошибку ValueError("can't have unbuffered text I/O",). На форумах пишут, что из-за Unicode в python3 открыть файл без буфера нельзя.
Пробовал еще через print(name,file=ftxt,flush=True) - не помогло!

Привожу код:
ftxt = open(name,"w")
ftxt.write(strg)
ftxt.flush()
os.fsync(ftxt.fileno())
import time
time.sleep(5)
ftxt.close

import socket

PORT = 33333
IP = "192.168.3.116"

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
msg = "User::Git.load_in \"" + name + "\""
sock.sendto(msg.encode('utf-8'), (IP, PORT))
sock.close


Есть какие идеи?
  • Вопрос задан
  • 960 просмотров
Подписаться 1 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 2
zelsky
@zelsky
# -*- coding: utf-8 -*-
Ответ написан
@dmtrrr
Backend developer
Попробуйте окрывать файл для записи в binary mode
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы