Форум сайта python.su
EdДружище, вы сильно впечатлительны, если за хамство принимаете критику.
На линухе при использовании TemporaryFile файл удаляется после создания, так что можно считать,
что имени у него нет, то есть узнавать нечего.
PS: Между прочим я это уже третий раз пишу, а вы хамите в ответ на совет читать внимательнее.
Офлайн
pionerНет, это неправльно, такие файлы удаляются только тогда, когда они явно закрыты, или переменная-дескриптор будет собрана Garbage Colector'ом. Более детально читаем тут:
Временные файлы удаляются по закрытии скрипта, иначе в них смысла нет.
Офлайн
regallНа прикладном уровне достаточно такого понимания, что я изложил.pionerНет, это неправльно, такие файлы удаляются только тогда, когда они явно закрыты, или переменная-дескриптор будет собрана Garbage Colector'ом. Более детально читаем тут:
Временные файлы удаляются по закрытии скрипта, иначе в них смысла нет.
http://docs.python.org/library/tempfile.html#tempfile.TemporaryFile
P.S. Да разрешит ваш спор могучий документаций
Офлайн
pionerНеобоснованную критику, заметьте. В свою очередь не могу не заметить, что вы сильно невнимательны, если после трех упоминаний о том,
Дружище, вы сильно впечатлительны, если за хамство принимаете критику.
Временные файлы удаляются по закрытии скрипта, иначе в них смысла нет.Попытаюсь объяснить поподробнее, раз простое повторение не работает.
Returns an object with a file-like interface. The file has no name, and will cease to exist when it is closed.А потом этот код:
_os.unlink(name)
return _os.fdopen(fd, mode, bufsize)
Офлайн
EdПосмотрел код. Буду рассуждать так -
Отвечу также на непрозвучавший вопрос 'А что же сделать, чтобы имя было?'. Ответ на него уже прозвучал, как ни странно - юзать NamedTemporaryFile.
Если вам интересно как это сделать - покажите ваш код, я расскажу, если смогу.
Офлайн
pionerНет такого.
Посмотрел код. Буду рассуждать так -
Удаление имени временного файла, в зависимости от платформы, видимо, связано с тем, что-бы чистильщик временной папки, если такой есть, не удалил сам файл.
И автор метода оставляет только дискриптор файла, не подумав при этом, что я могу сделать хранилищем свою директорию по выбору и сам заботиться о ее непереполнении.Если вы имеете в виду автора tempfile, то он предоставил возможность создать временный файл с именем.
Мой код вам не нужен, и вы знаете об этом.Не нужен был бы - не говорил. Мне собственно все равно что это будет - ваш настоящий код или кусочек, объясняющий чего вы пытаетесь сделать. Потому что из вышеизложенного у меня пока вывод один - вы хотите странного.
Офлайн
Edне наседайте на человека так, учтите, что он пришел из PHP…
Не нужен был бы - не говорил. Мне собственно все равно что это будет - ваш настоящий код или кусочек, объясняющий чего вы пытаетесь сделать. Потому что из вышеизложенного у меня пока вывод один - вы хотите странного.
Офлайн
pioner
…чистильщик временной папки, если такой есть, не удалил сам файл.
Edтогда это надо для ДЕЙСТВИТЕЛЬНО уникального имени файла созданного по дискриптору?
Нет такого.
EdРечь идет о модуле CGI, который использует модуль tempfile.
Если вы имеете в виду автора tempfile, то он предоставил возможность создать временный файл с именем.
pioner
Мой код вам не нужен…
Edкод: fileobject.name - и все! который раз уже написан!
Не нужен был бы - не говорил. …
… у меня пока вывод один - вы хотите странного.
pionerт.е. копировать файл с помошью copy().
Надо для загрузки файла на сервер через веб-форму не читая содержимого, а делать копию в другом месте для версии питона не выше 2.3..
Офлайн
regallЯ пытаюсь помочь. Предложил помощь, сказал чего мне надо. А мне в ответ объясняют что это мне не надо. Реагирую как могу.
не наседайте на человека так, учтите, что он пришел из PHP…
P.S. А код-таки увидеть хотелось бы .Именно.
Офлайн
pionerЭто я читал. Мне непонятно. Хотите чтобы я вам помог - покажите код, чтобы воспроизвести ситуацию. Это форум программистов, здесь так принято.
Надо для загрузки файла на сервер через веб-форму не читая содержимого, а делать копию в другом месте для версии питона не выше 2.3..
т.е. копировать файл с помошью copy().
Отредактировано (Окт. 30, 2009 10:38:58)
Офлайн