【tempfile】

  惊奇地又发现了一个比较有意思的小模块。

  在一些场景中我们经常需要自动生成一些临时文件,当然用简单的open函数,来创建一个隐藏文件可以实现。不过tempfile这个模块把一些有的没的功能全部都封装完毕。我们直接使用即可。

  ■  简单使用

from tempfile import TemporaryFile

temp = TemporaryFile()
print temp
print temp.name '''
TemporaryFile类的构造方法,其返回的还是一个文件对象。但这个文件对象特殊的地方在于
1. 对应的文件没有文件名,对除了本程序之外的程序不可见
2. 在被关闭的同时被删除
所以上面的两句打印语句,输出分别是一个文件对象,以及一个<fdopen>(并不是文件名)
'''
# 向临时文件中写入内容
temp.write('hello\nworld') # ...一些操作之后需要读取临时文件的内容了
temp.seek(0) # 从头读取,和一般文件对象不同,seek方法的执行不能少
print temp.read() temp.close() # 关闭文件的同时删除文件

  TemporaryFile类是tempfile中最常用的类之一,其目的就在于提供一个统一的临时文件调用接口,读写临时文件,并且保证临时文件的隐形性。这个类的构造方法和一般的文件对象很类似:tempfile.TemporaryFile([mode='w+b'[, bufsize=-1[, suffix=''[, prefix='tmp'[, dir=None]]]]])。可以看到默认的打开模式是w+b,但是和一般通过wb模式打开的文件对象不同之处在于,正如上面所示它也可以用于读取文件。

  

  在TemporaryFile类的基础上又衍生出了两个更加精细化的类用来处理。NamedTemporaryFile类是在前者的基础上,初始化时加上了delete参数,默认值为True。当此参数为True时和TemporaryFile类完全一致。如果是False,那么临时文件对象在被关闭时不会删除。因此可以在下面的代码中通过同样的对象再次打开。

  另一个是SpooledTemporaryFile,它在TemporaryFile的基础上增加了一个max_size参数默认值为0。当这个类的对象调用write方法向临时文件中写入内容时,这些内容暂时先存在于缓存中,只有当内容大小达到了max_size指定的大小(经试验应该不是这样的,存疑)

  ●  创建临时文件夹

  tempfile中还有创建临时目录的功能。比如tempfile.mkdtemp方法。这个方法做的事情是在系统指定的临时目录下(比如TEMP,TEMPDIR这些环境变量指向的目录)创建一个临时目录,可以指出一个标识名让目录名中包含这个标识名。方法返回的是新创建的临时目录的路径。

【Python】 tempfile模块 临时文件和目录的处理的更多相关文章

  1. python之模块filecmp(文件/目录比较)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块filecmp(文件/目录比较) #用于比较文件及文件夹的内容.他是轻量级的工具.可以做一 ...

  2. pig脚本不需要后缀名(python tempfile模块生成pig脚本临时文件,执行)

    pig 脚本运行不需要后缀名 pig脚本名为tempfile,无后缀名 用pig -f tempfile 可直接运行 另外,pig tempfile也可以直接运行 这样就可以用python临时文件存储 ...

  3. Python::OS 模块 -- 文件和目录操作

    os模块的简介参看 Python::OS 模块 -- 简介 os模块的进程管理 Python::OS 模块 -- 进程管理 os模块的进程参数 Python::OS 模块 -- 进程参数 os模块中包 ...

  4. python常用模块:项目目录规范、定制程序入口、自定义模块、引用变量、time和datetime模块

    今天讲课内容有两大部分: 一.文件目录规范二.定制程序入口三.使用标准目录后四.常规函数time.datetime 一.标准目录规范 之前用过的案例atm机+购物商城代码过长,在学习了模块和包以后,我 ...

  5. python os模块获取指定目录下的文件列表

    bath_path = r"I:\ner_results\ner_results" dir_list1 = os.listdir(bath_path) for dir1 in di ...

  6. Python::OS 模块 -- 进程参数

    os模块的简介请参看 Python::OS 模块 -- 简介 os模块的文件和目录操作 Python::OS 模块 -- 文件和目录操作 os模块的进程管理 Python::OS 模块 -- 进程管理 ...

  7. Python::OS 模块 -- 进程管理

    os模块的简介参看 Python::OS 模块 -- 简介 os模块的文件相关操作参看 Python::OS 模块 -- 文件和目录操作 os模块的进程参数 Python::OS 模块 -- 进程参数 ...

  8. Python::OS 模块 -- 简介

    OS 模块简介 OS模块是Python标准库中的一个用于访问操作系统功能的模块,OS模块提供了一种可移植的方法使用操作系统的功能.使用OS模块中提供的接口,可以实现跨平台访问.但是在OS模块中的接口并 ...

  9. Python 自定义模块位置

    1.需要找出Python解释器从哪里查找模块: 具体方法: >>> import sys,pprint>>> pprint.pprint(sys.path)['', ...

随机推荐

  1. [转]cubemap soft shadow

    https://community.arm.com/graphics/b/blog/posts/dynamic-soft-shadows-based-on-local-cubemap

  2. Talend 将Oracle中数据导入到hive中,根据系统时间设置hive分区字段

    首先,概览下任务图: 流程是,先用tHDFSDelete将hdfs上的文件删除掉,然后将oracle中的机构表中的数据导入到HDFS中:建立hive连接->hive建表->tJava获取系 ...

  3. Linux应用server搭建手冊—Weblogic服务域的创建与部署

         前一篇谈到了Weblogic的安装,接下来整理weblogic服务域的创建及项目的部署      一.webLogic服务域创建          使用root用户登录后使用命令:#su W ...

  4. 牛腩学ASP.NET CORE做博客(视频)

    牛腩学习ASP.NET CORE做的项目,边学边做. 目录: 01-dotnetcore网站部署到centos7系统上(时长 2:03:16) 02-前期准备及项目搭建 (时长:0:23:35) 03 ...

  5. 【Unity】8.2 GUI Style和GUISkin

    分类:Unity.C#.VS2015 创建日期:2016-04-27 一.自定义GUI Control 功能控件 (Functional Control) 是游戏必要的,而这些控件的外观对游戏的美感非 ...

  6. 四步法分析定位生产环境下MySQL上千条SQL中的问题所在

    第一步:通过以下两种方式之一来打开慢查询功能 (1)方式一:通过修改mysql的my.cnf文件 如果是5.0或5.1等版本需要增加以下选项: log-slow-queries="mysql ...

  7. Ossec添加Agent端流程总结

    (1) 服务器上添加客户端 在服务器上添加客户端,执行如下命令,按照提示进行输入,红色部分是我们输入的: [root@ossec-server logs]# /var/ossec/bin/manage ...

  8. 沐雪多用户微信公众平台开发源码,商城小程序源码(2018年最新的asp.net C# 微信源码,小程序源码)

    现售价5400元,就可以搭建自己的微信平台啦 购买地址:https://item.taobao.com/item.htm?id=539102325336 该系统是由[上海沐雪网络]独家授权销售,其他地 ...

  9. jsonrpc使用

    jsonrpc使用 1.什么是rpc RPC(Remote Procedure Call)远程过程调用,简单说就是通过网络请求服务,不需要了解底层网络技术的协议. 常用语分布式应用程序. 2.rpc数 ...

  10. [转]Unity3D新手引导开发手记

    直接跳转吧  Unity3D新手引导开发手记 看到还不错就直接转过来了,我是有多懒啊