Официальная документация для 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, который не будет автоматически удалять файлы, и мне не нужны именованные файлы)