Python 临时文件、目录的生成
2022/8/12 1:23:31
本文主要是介绍Python 临时文件、目录的生成,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 问题
创建一个临时文件夹或目录,并希望使用完之后自动销毁。
2. 解决方案
tempfile
模块中很多的函数可以完成这任务。
创建一个匿名临时文件,可以使用tempfile.TemporaFile
。这种方式文件会自动销毁。
from tempfile import TemporaryFile with TemporaryFile('w+t') as f: # Read/write to the file f.write('Hello World\n') f.write('Testing\n') # 返回到开头并读取数据 f.seek(0) data = f.read() print(data)
f = TemporaryFile('w+t') f.write('Hello World\n') f.write('Testing') f.seek(0) print(f.read())
上述两种方法等价。输出:
Hello World Testing
TemporaFile
的第一个参数是文件模式,文本模式使用w+t
,二进制模式使用w+b
。TemporaryFile()
另外还支持跟内置的 open()
函数一样的参数。
with TemporaryFile('w+t', encoding='utf-8', errors='ignore') as f:
创建有名字的临时文件。可以使用NamedTemporaryFile()
。这种方式文件会自动销毁。
from tempfile import NamedTemporaryFile f = NamedTemporaryFile(prefix='mytemp', suffix='.md', dir='C:/Users/T14/AppData/Local/Temp/') print(f.name)
C:\Users\T14\AppData\Local\Temp\mytempcecb12hp.md
创建临时目录。可以使用tempfile.TemporaryDirectory
。
from tempfile import TemporaryDirectory dir = TemporaryDirectory() print(dir.name) with TemporaryDirectory() as dirname: print(dirname)
上述两种方法等价。输出:
C:\Users\T14\AppData\Local\Temp\tmpac0p48m1 C:\Users\T14\AppData\Local\Temp\tmphjcngywq
3. 讨论
TemporaryFile()
、NamedTemporaryFile()
和 TemporaryDirectory()
是处理临时文件、目录的最简单的方式了,因为它们会自动处理所有的创建和清理步骤。 在一个更低的级别,你可以使用 mkstemp()
和 mkdtemp()
来创建临时文件和目录。比如:
import tempfile tmp = tempfile.mkstemp() # 生成临时文件 print(tmp) print(tempfile.gettempdir()) # 查看临时文件、目录路径 tmp2 = tempfile.mkdtemp() # 生成临时目录 print(tmp2) print(tempfile.gettempdir())
(3, 'C:\\Users\\T14\\AppData\\Local\\Temp\\tmp8al28qr3') C:\Users\T14\AppData\Local\Temp C:\Users\T14\AppData\Local\Temp\tmphdj6ac__ C:\Users\T14\AppData\Local\Temp
但是,这些函数并不会做进一步的管理了。 例如,函数 mkstemp()
仅仅就返回一个原始的OS文件描述符,你需要自己将它转换为一个真正的文件对象。 同样你还需要自己清理这些文件。
所有和临时文件相关的函数都允许你通过使用关键字参数 前缀prefix
、后缀suffix
和 文件路径dir
来自定义目录以及命名规则。比如:
f = NamedTemporaryFile(prefix='mytemp', suffix='.md', dir='C:/Users/T14/AppData/Local/Temp/') print(f.name)
C:\Users\T14\AppData\Local\Temp\mytempyqr3xvy7.md
最后一点,尽可能以最安全的方式使用 tempfile
模块来创建临时文件。
来自:python3-cookbook
这篇关于Python 临时文件、目录的生成的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南