获取路径/文件名,如何创建一个临时目录,并在Python获取路径/文件名如何创建一个临时目录,并在Python
79
A
回答
136
4
使用模块tempfile。
19
为了扩大在另一个答案,这里是一个相当完整的例子可以清理TMPDIR甚至例外:
import contextlib
import os
import shutil
import tempfile
@contextlib.contextmanager
def cd(newdir, cleanup=lambda: True):
prevdir = os.getcwd()
os.chdir(os.path.expanduser(newdir))
try:
yield
finally:
os.chdir(prevdir)
cleanup()
@contextlib.contextmanager
def tempdir():
dirpath = tempfile.mkdtemp()
def cleanup():
shutil.rmtree(dirpath)
with cd(dirpath, cleanup):
yield dirpath
def main():
with tempdir() as dirpath:
pass # do something here
5
在蟒蛇3.2和更高版本,有在STDLIB这个有用的contextmanager https://docs.python.org/3/library/tempfile.html#tempfile.TemporaryDirectory
相关问题
- 1. 如何自动创建(并删除)Makefile中的临时目录?
- 2. 在Haskell中创建临时目录
- 3. org.apache.jmeter.report.dashboard.GenerationException:无法创建临时目录“temp”
- 4. 无法创建临时目录
- 5. 如何在CMake中创建临时目录?
- 6. 当我创建一个临时文件/目录时,它何时会被删除?
- 7. 多处理python-server创建太多临时目录
- 8. 从纯C在windows中创建一个唯一的临时目录
- 9. 如何创建一个隐藏目录
- 10. 如何在.xls表单中为每个项目创建一个目录python
- 11. 如何创建一个临时的上传和一段时间
- 12. 可以在系统的临时目录中创建flymake的临时文件吗?
- 13. Python:创建目录
- 14. 创建目录Python
- 15. 如何在Python中的窗口上创建一个命名的临时文件?
- 16. 如何在HUE中创建一个新的Hive会话(并清理临时表)?
- 17. 如何在IntelliJ 14中创建一个临时文件?
- 18. 如何在Emacs中创建一个临时函数Lisp
- 19. 每次执行Python程序时创建一个新目录
- 20. 无法创建一个临时文件
- 21. 如何在使用java 1.6的Java应用程序内创建临时目录?
- 22. 如何用Maven2在目标中创建一个子目录
- 23. 如何在Django项目中创建一个“addons”目录?
- 24. 如何创建临时文件并在一段时间后删除
- 25. 如何创建临时队列并在JMS中访问它2
- 26. SSIS - 如何在飞行Ole db目的地创建临时表
- 27. Python - 如何在新创建的目录中创建多个文件夹?
- 28. 创建一个新目录并写入一个文件
- 29. 如何创建一个临时的jms队列并按名称连接到它?
- 30. 创建一个没有任何目录信息的Python zip
如果你在测试中使用它,一定要删除(shutil.rmtree)目录,因为它在使用后不会自动删除。 “mkdtemp()的用户负责在完成时删除临时目录及其内容。”请参阅:http://docs.python.org/2/library/tempfile.html#tempfile.mkdtemp – 2013-11-12 11:42:39
这必须是被接受的答案! – gregoltsov 2014-10-02 13:42:02
在python3中,你可以使用tempfile.TemporaryDirectory()作为dirpath:',临时目录会在退出上下文管理器时自动清除。 https://docs.python.org/3.4/library/tempfile.html#tempfile.TemporaryDirectory – Symmetric 2016-02-04 23:11:51