如何在python中创建具有用户定义名称的临时文件/目录。我知道tempfile。但是,我无法看到任何带有filename作为参数的函数。
注意:我需要这个来测试包含临时文件的临时目录而不是使用实际文件系统的glob(文件名模式匹配)功能。
答案 0 :(得分:0)
您可以将open()
用于您需要的任何文件名。
e.g。
open(name, 'w')
或者
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
在临时目录中创建文件。
答案 1 :(得分:0)
我几乎更喜欢使用 NamedTemporaryFile()
以这种复杂的方式编写,而不是使用 open()
,因为我真的想强调这是一个临时文件:
import tempfile, os
with tempfile.NamedTemporaryFile() as temp_fp:
os.rename(temp_fp.name, '/tmp/my_custom_name.txt')
# do stuff here ...
# do stuff here END ...
os.rename('/tmp/my_custom_name.txt', temp_fp.name) # finally, rename back
我们需要重新命名,因为: update file descriptor after os.rename()