1:tempfile 模块

tempfile 模块是用来创建/操作 临时文件(夹)的。有时候我们希望在程序运行过程中需要生成一个临时文件,并在某一个时间删除它。这就需要用到tempfile模块了。

2:tempfile.mkstemp

mkstemp(suffix=None, prefix=None, dir=None, text=False)
  1. suffix 是指定临时文件的后缀,比如’.h5’, '.txt’等。
  2. prefix 是指定文件的前缀,比如prefix = ‘t’,那么得到的文件名称的第一个字符就是’t’。如果是None就是没有前缀。
  3. dir是指定临时文件生成的目录所在。None将根据系统环境变量TMPDIR, TEMP或者TMP的设置来保存临时文件。
  4. text是指定是否以文本形式操作文件,False则是二进制形式。
  5. 返回的是两个参数,一个是fd,一个是fname,fd是文件描述符,fname是指生成的文件的绝对路径。
  6. 生成的文件的名称是随机的,如果你指定了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.

  1. 文件的读写权限只有创建者拥有
  2. 第二句没看太懂,可能是如果操作系统使用permission bits(不知道如何翻译)去强制指定该文件的权限,那么这个文件就会变成所有人都不可以使用的了。
  3. 该进程的子进程不会继承该文件描述符。

tempfile.mkstemp 详解相关推荐

  1. python popen阻塞_对Python subprocess.Popen子进程管道阻塞详解

    问题产生描述 使用子进程处理一个大的日志文件,并对文件进行分析查询,需要等待子进程执行的输出结果,进行下一步处理. 出问题的代码 # 启用子进程执行外部shell命令 def __subprocess ...

  2. Oracle ASM 详解 收藏

    Oracle ASM 详解 ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也 ...

  3. oracle control file文件 详解

    1 定义当前物理数据库状态信息的二进制文件 (1)控制文件丢失的话要求恢复 (2)它是在MOUNT状态被读取的(可以在NOMOUNT状态用CREATE CONFILE重建) (3)它是数据库操作必须的 ...

  4. C 和 C++ 宏 详解

    From:https://www.cnblogs.com/njczy2010/p/5773061.html C中的预编译宏详解:http://www.cppblog.com/bellgrade/arc ...

  5. Oracle11gR2下搭建DataGuard主备同步详解

    Oracle11gR2下搭建DataGuard主备同步详解 一 前言: 本文主要流程基于blog.itpub.net上博友oracle_zsx所著文章:<手把手教你安装Data Guard> ...

  6. oracle中表空间详解

    oracle与其他数据库不同的地方就是表空间设计.表空间可以将oracle数据库划分为多个逻辑区域,这有点像MySQL中的create database的感觉.在一个oracle数据库中能够有一个或多 ...

  7. Oracle 冷备份详解【实战案例】

    Oracle 冷备份详解 --准备工作 select * from v$database; select file_name from dba_data_files; create tablespac ...

  8. oracle解析关闭,oracle起动和关闭详解(转)

    oracle起动和关闭详解(转)[@more@]实例 1.启动oracle server. startup[nomount|mount|open][force][pfile=filename] 参数说 ...

  9. oracle里面asm的作用,Oracle ASM 详解

    Oracle ASM 详解 ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也 ...

  10. android相册和拍照并裁剪图片大小,Android 拍照并对照片进行裁剪和压缩实例详解...

    Android 拍照并对照片进行裁剪和压缩实例详解 本文主要介绍 Android 调用摄像头拍照并对照片进行裁剪和压缩,文中给出了主要步骤和关键代码. 调用摄像头拍照,对拍摄照片进行裁剪,代码如下. ...

最新文章

  1. centos7.4 ngixn1.13.10 mysql5.7.21 php7.2.3 源码编译安装之后php无法连接mysql
  2. C#是面向对象编程语言
  3. HDU - 3488 Tour(二分图最小权匹配+KM)
  4. L1-004.计算摄氏温度
  5. Qt开启本地事件循环(防止界面卡阻塞【卡死】)QEventLoop 的基本使用
  6. 2011(信息学奥赛一本通-T1234)
  7. SimpleDateFormat类 java 1614697530
  8. Ambari安装之部署单节点集群
  9. requests01_嵩山
  10. Mac命令行上传代码至GitHub
  11. 蚂蚁金服java研发面经_蚂蚁金服Java研发岗实习内推面经
  12. java证明角谷猜想_Java程序(角谷猜想,applet) -
  13. B站视频音频合并(FFmpeg)
  14. 什么是Oracle数据库伪列,ORA-00976: 此处不允许指定的伪列或运算符
  15. tf.RaggedTensor
  16. 拼多多商家一件代发,一键打单有什么软件?
  17. 剑指Offer全题解—Java版本
  18. android 循环弹幕,Android弹幕效果
  19. ASM磁盘组添加ASM磁盘
  20. PIC单片机延时问题

热门文章

  1. myeclipse如何导入项目
  2. 网站域名假墙处理方法 内含cloudflare API自动更换IP的php脚本
  3. 【壁纸小程序】搭建自己的壁纸小程序-微信抖音双端
  4. Ubuntu恢复官方默认源
  5. 计算机无法连接到wifi但手机可以使用,电脑连不上wifi而手机能连怎么办
  6. tzoj 3847 Mowing the Lawn (单调队列 )
  7. php 扑克牌洗牌算法,随机洗牌算法 | 学步园
  8. pythonunicode编码_python unicode 编码整理
  9. 《西方确指》明心生极乐、专修净土乃大孝、持咒显空慧
  10. ASC19 初赛要求自翻译