tempfile.mkstemp 详解
1:tempfile 模块
tempfile 模块是用来创建/操作 临时文件(夹)的。有时候我们希望在程序运行过程中需要生成一个临时文件,并在某一个时间删除它。这就需要用到tempfile模块了。
2:tempfile.mkstemp
mkstemp(suffix=None, prefix=None, dir=None, text=False)
- suffix 是指定临时文件的后缀,比如’.h5’, '.txt’等。
- prefix 是指定文件的前缀,比如prefix = ‘t’,那么得到的文件名称的第一个字符就是’t’。如果是None就是没有前缀。
- dir是指定临时文件生成的目录所在。None将根据系统环境变量TMPDIR, TEMP或者TMP的设置来保存临时文件。
- text是指定是否以文本形式操作文件,False则是二进制形式。
- 返回的是两个参数,一个是fd,一个是fname,fd是文件描述符,fname是指生成的文件的绝对路径。
- 生成的文件的名称是随机的,如果你指定了suffix=‘.txt’和prefix=‘A’,那么文件名称就是’AXXXXXXX.txt’的格式。
3:文件描述符是什么?
内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。
文件描述符在同一进程下与文件是对应的,一个描述符只指向一个文件,但是一个文件可以被多个文件描述符关联。
同一进程下,文件描述符是不可重复的。但是不同进程可以有一样的文件描述符。它们也可以指向不同的文件。
4: 如何删除创建的临时文件?
首先需要使用os.close(fd) 方法用于关闭指定的文件描述符 fd,
然后再使用os.remove(fname)删除临时文件。
5:创建的临时文件有什么特点?
函数描述中这样写道:
The file is readable and writable only by the creating user ID.
If the operating system uses permission bits to indicate whether a file is executable, the file is executable by no one. The file descriptor is not inherited by children of this process.
- 文件的读写权限只有创建者拥有
- 第二句没看太懂,可能是如果操作系统使用permission bits(不知道如何翻译)去强制指定该文件的权限,那么这个文件就会变成所有人都不可以使用的了。
- 该进程的子进程不会继承该文件描述符。
tempfile.mkstemp 详解相关推荐
- python popen阻塞_对Python subprocess.Popen子进程管道阻塞详解
问题产生描述 使用子进程处理一个大的日志文件,并对文件进行分析查询,需要等待子进程执行的输出结果,进行下一步处理. 出问题的代码 # 启用子进程执行外部shell命令 def __subprocess ...
- Oracle ASM 详解 收藏
Oracle ASM 详解 ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也 ...
- oracle control file文件 详解
1 定义当前物理数据库状态信息的二进制文件 (1)控制文件丢失的话要求恢复 (2)它是在MOUNT状态被读取的(可以在NOMOUNT状态用CREATE CONFILE重建) (3)它是数据库操作必须的 ...
- C 和 C++ 宏 详解
From:https://www.cnblogs.com/njczy2010/p/5773061.html C中的预编译宏详解:http://www.cppblog.com/bellgrade/arc ...
- Oracle11gR2下搭建DataGuard主备同步详解
Oracle11gR2下搭建DataGuard主备同步详解 一 前言: 本文主要流程基于blog.itpub.net上博友oracle_zsx所著文章:<手把手教你安装Data Guard> ...
- oracle中表空间详解
oracle与其他数据库不同的地方就是表空间设计.表空间可以将oracle数据库划分为多个逻辑区域,这有点像MySQL中的create database的感觉.在一个oracle数据库中能够有一个或多 ...
- Oracle 冷备份详解【实战案例】
Oracle 冷备份详解 --准备工作 select * from v$database; select file_name from dba_data_files; create tablespac ...
- oracle解析关闭,oracle起动和关闭详解(转)
oracle起动和关闭详解(转)[@more@]实例 1.启动oracle server. startup[nomount|mount|open][force][pfile=filename] 参数说 ...
- oracle里面asm的作用,Oracle ASM 详解
Oracle ASM 详解 ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也 ...
- android相册和拍照并裁剪图片大小,Android 拍照并对照片进行裁剪和压缩实例详解...
Android 拍照并对照片进行裁剪和压缩实例详解 本文主要介绍 Android 调用摄像头拍照并对照片进行裁剪和压缩,文中给出了主要步骤和关键代码. 调用摄像头拍照,对拍摄照片进行裁剪,代码如下. ...
最新文章
- centos7.4 ngixn1.13.10 mysql5.7.21 php7.2.3 源码编译安装之后php无法连接mysql
- C#是面向对象编程语言
- HDU - 3488 Tour(二分图最小权匹配+KM)
- L1-004.计算摄氏温度
- Qt开启本地事件循环(防止界面卡阻塞【卡死】)QEventLoop 的基本使用
- 2011(信息学奥赛一本通-T1234)
- SimpleDateFormat类 java 1614697530
- Ambari安装之部署单节点集群
- requests01_嵩山
- Mac命令行上传代码至GitHub
- 蚂蚁金服java研发面经_蚂蚁金服Java研发岗实习内推面经
- java证明角谷猜想_Java程序(角谷猜想,applet) -
- B站视频音频合并(FFmpeg)
- 什么是Oracle数据库伪列,ORA-00976: 此处不允许指定的伪列或运算符
- tf.RaggedTensor
- 拼多多商家一件代发,一键打单有什么软件?
- 剑指Offer全题解—Java版本
- android 循环弹幕,Android弹幕效果
- ASM磁盘组添加ASM磁盘
- PIC单片机延时问题