Python - Как я преобразовываю “дескриптор уровня ОС в открытый файл” к объекту файла?

Да, вы правы. ?: обычно называется «тернарным условным оператором», который часто называют просто «тройным оператором». Это сокращенная версия стандарта if / else условная.

Тернарный условный оператор

49
задан CraigTeegarden 14 April 2013 в 12:13
поделиться

5 ответов

Можно использовать

os.write(tup[0], "foo\n")

для записи в дескриптор.

, Если Вы хотите открыть дескриптор для записи Вас, должен добавить режим "w"

f = os.fdopen(tup[0], "w")
f.write("foo")
51
ответ дан Peter Hoffmann 7 November 2019 в 11:47
поделиться

Вы забыли определять открытый режим ('w') в fdopen (). Значение по умолчанию является 'r', вызывать запись () звонит в сбой.

я думаю, что mkstemp () создает файл для чтения только. Вызов fdopen с 'w', вероятно, вновь открыл его для записи (Вы можете вновь открыть файл, созданный mkstemp).

7
ответ дан efotinis 7 November 2019 в 11:47
поделиться

Какова Ваша цель, здесь? [Действительно ли 110] является несоответствующим в Ваших целях?

2
ответ дан Alex Coventry 7 November 2019 в 11:47
поделиться

Вот как это сделать с помощью оператора with:

from __future__ import with_statement
from contextlib import closing
fd, filepath = tempfile.mkstemp()
with closing(os.fdopen(fd, 'w')) as tf:
    tf.write('foo\n')
13
ответ дан 7 November 2019 в 11:47
поделиться
temp = tempfile.NamedTemporaryFile(delete=False)
temp.file.write('foo\n')
temp.close()
4
ответ дан 7 November 2019 в 11:47
поделиться
Другие вопросы по тегам:

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