2016-09-20 3 views
0

Как создать временные файлы/каталоги с определенными пользователем именами в python. Я знаю tempfile. Однако я не видел никакой функции с именем файла в качестве аргумента.временные файлы/каталоги с пользовательскими именами?

Примечание: Мне нужно это для модуля, проверяющего функциональность glob (сопоставление имени файла) во временном каталоге, содержащем временные файлы, а не с использованием фактической файловой системы.

+0

Знаете ли вы о функции ['tempfile.NamedTemporaryFile()'] (https://docs.python.org/2/library/tempfile.html#tempfile.NamedTemporaryFile)? – martineau

+0

Я думаю, что он называет файл случайным образом. Исправьте меня, если я ошибаюсь –

+1

Имя файла может быть случайным, но поскольку вы можете узнать, что это такое ('result.name'), вы можете переименовать его, как обычный файл. Вы также можете управлять каталогом, который он создал, с помощью аргумента 'dir ='. Обязательно используйте 'delete = True', если вы не хотите, чтобы он был удален, как только он будет закрыт. – martineau

ответ

0

Вы можете использовать open() с любым нужным именем файла.

например.

open(name, 'w') 

Open

Или

import os 
import tempfile 

print 'Building a file name yourself:' 
filename = '/tmp/guess_my_name.%s.txt' % os.getpid() 
temp = open(filename, 'w+b') 
try: 
    print 'temp:', temp 
    print 'temp.name:', temp.name 
finally: 
    temp.close() 
    # Clean up the temporary file yourself 
    os.remove(filename) 

Или вы можете создать временный каталог с помощью mkdtemp, а затем использовать open создать файл во временном каталоге.

+0

Спасибо за ваш ответ. при использовании «mkdtemp» пользователь несет ответственность за его удаление. –

+0

http://stackoverflow.com/questions/6884991/how-to-delete-dir-created-by-python-tempfile-mkdtemp/22726782 Вы можете проверить это – Techidiot

+0

Спасибо. Это помогло –

Смежные вопросы