Официальная документация для TemporaryFile гласит:
Параметр режима по умолчанию равен 'w + b'
чтобы созданный файл можно было прочитать
и написано без закрытия .
Тем не менее, приведенный ниже код не работает должным образом:
import tempfile
def play_with_fd():
with tempfile.TemporaryFile() as f:
f.write('test data\n')
f.write('most test data\n')
print 'READ:', f.read()
f.write('further data')
print 'READ:', f.read()
f.write('even more')
print 'READ:', f.read()
print 'READ:', f.read()
print 'READ:', f.read()
if __name__ == '__main__':
play_with_fd()
Вывод, который я получаю:
> python play.py
READ:
READ:
READ:
READ:
READ:
Может кто-нибудь объяснить это поведение? Есть ли способ читать из временных файлов вообще? (без использования низкоуровневого mkstemp, который не будет автоматически удалять файлы; и мне не нужны именованные файлы)