【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. JAVA classpath jar问题[zz]

    classpath问题可以说是所有初学者头疼的问题,偶也一样. 1) classpath的作用:  它的作用就事让java找到你所要执行,或你拥有的类. 2) classpath的设置:  设置cla ...

  2. linux分享一:网络设置

    在Linux中,TCP/IP网络的配置信息存在几个不同的文件里面,这些文件分别就是 /etc/sysconfig/network. 网卡配置文件. /etc/hostc. /ect/resolv.co ...

  3. 本地搭建 Gradle 服务器,提高 Android Studio Gradle 下载速度

    AndroidStudio 更新以后,在公司网会卡在下载 Gradle 的地方,下载 Gradle 速度很慢. 看到别人的博客提供的解决办法本地搭建一个 Gradle 的服务器,然后把 Android ...

  4. destoon入门实例与常见问题

    收集了一些destoon入门实例与常见问题,大家做个参考. 链接如下: destoon忘记后台密码怎么办?destoon找回管理员密码 忘记destoon管理员后台账号密码怎么办?解决方法 desto ...

  5. innobackupex在线备份及恢复(全量和增量)

    Xtrabackup是由percona开发的一个开源软件,它是innodb热备工具ibbackup(收费的商业软件)的一个开源替代品.Xtrabackup由个部分组成:xtrabackup和innob ...

  6. 了解HTTP协议栈(实践篇)

    关于http协议的理论知识,我在这里就不详细说明了,具体下面给出的链接有.接下来都是用具体的操作显示的,各位可以结合起来看. 一.使用nc打开端口,并使用浏览器进行访问 (对应文章中的HTTP协议详解 ...

  7. http缓存机制之304状态码

    在网上看到一篇关于解释浏览器缓存更新机制304状态码的文章,里面说如果请求头中的If-Modified-Since字段和If-None-Match字段的值分别和响应头中的Last-Modified字段 ...

  8. javascript的toString深入探究

    toString()方法是所有对象都有的一个方法,无论是字符串,数组,对象,都可以调用这个方法,但是,事实上,他们调用的并不是同一个函数哦! 看下面的代码: var str = '123'; cons ...

  9. [Windows Azure] Create and use a reporting service in Windows Azure SQL Reporting

    Create and use a reporting service in Windows Azure SQL Reporting In this tutorial you will learn ab ...

  10. kali64位 安装 adb

    1,adb只有32位的  ,下载地址http://dl.dbank.com/c0umekbpxi# 2,下载解压,但是执行adb命令时,报./adb: error while loading shar ...