`
scm002
  • 浏览: 317144 次
社区版块
存档分类
最新评论

Python模块学习——tempfile

 
阅读更多

Python模块学习——tempfile

主要有以下几个函数:

tempfile.TemporaryFile

如何你的应用程序需要一个临时文件来存储数据,但不需要同其他程序共享,那么用TemporaryFile函数创建临时文件是最好的选择。其他的应用程序是无法找到或打开这个文件的,因为它并没有引用文件系统表。用这个函数创建的临时文件,关闭后会自动删除。

 

import os
import tempfile

print 'Building a file name yourself:'
filename = '/tmp/guess_my_name.%s.txt' % os.getpid()
temp = open(filename, 'w+b')
try:
    print 'temp:', temp
    print 'temp.name:', temp.name
finally:
    temp.close()
    os.remove(filename)     # Clean up the temporary file yourself

print
print 'TemporaryFile:'
temp = tempfile.TemporaryFile()
try:
    print 'temp:', temp
    print 'temp.name:', temp.name
finally:
    temp.close()  # Automatically cleans up the file

这个例子说明了普通创建文件的方法与TemporaryFile()的不同之处,注意:用TemporaryFile()创建的文件没有文件名

 

$ python tempfile_TemporaryFile.py

 

Building a file name yourself:

temp: <open file '/tmp/guess_my_name.14932.txt', mode 'w+b' at 0x1004481e0>

temp.name: /tmp/guess_my_name.14932.txt


TemporaryFile:

temp: <open file '<fdopen>', mode 'w+b' at 0x1004486f0>

temp.name: <fdopen>

 

默认情况下使用w+b权限创建文件,在任何平台中都是如此,并且程序可以对它进行读写。

 

import os
import tempfile

temp = tempfile.TemporaryFile()
try:
    temp.write('Some data')
    temp.seek(0)
    
    print temp.read()
finally:
    temp.close()

写入侯,需要使用seek(),为了以后读取数据。

 

 

$ python tempfile_TemporaryFile_binary.py

 

Some data

如果你想让文件以text模式运行,那么在创建的时候要修改mode为'w+t'

 

import tempfile

f = tempfile.TemporaryFile(mode='w+t')
try:
    f.writelines(['first\n', 'second\n'])
    f.seek(0)

    for line in f:
        print line.rstrip()
finally:
    f.close()

$ python tempfile_TemporaryFile_text.py

 

first

second

tempfile.NamedTemporaryFile

如果临时文件会被多个进程或主机使用,那么建立一个有名字的文件是最简单的方法。这就是NamedTemporaryFile要做的,可以使用name属性访问它的名字

 

import os
import tempfile

temp = tempfile.NamedTemporaryFile()
try:
    print 'temp:', temp
    print 'temp.name:', temp.name
finally:
    # Automatically cleans up the file
    temp.close()
print 'Exists after close:', os.path.exists(temp.name)

尽管文件带有名字,但它仍然会在close后自动删除

 

$ python tempfile_NamedTemporaryFile.py

 

temp: <open file '<fdopen>', mode 'w+b' at 0x1004481e0>

temp.name: /var/folders/9R/9R1t+tR02Raxzk+F71Q50U+++Uw/-Tmp-/tmp0zHZvX

Exists after close: False

tempfile.mkdtemp

创建临时目录,这个不多说,直接看例子

 

import os
import tempfile

directory_name = tempfile.mkdtemp()
print directory_name
# Clean up the directory yourself
os.removedirs(directory_name)

$ python tempfile_mkdtemp.py

 

/var/folders/9R/9R1t+tR02Raxzk+F71Q50U+++Uw/-Tmp-/tmpB1CR8M

目录需要手动删除。

 

Predicting Names

用3个参数来控制文件名,名字产生公式:dir + prefix + random + suffix

 

import tempfile

temp = tempfile.NamedTemporaryFile(suffix='_suffix', 
                                   prefix='prefix_', 
                                   dir='/tmp',
                                   )
try:
    print 'temp:', temp
    print 'temp.name:', temp.name
finally:
    temp.close()

$ python tempfile_NamedTemporaryFile_args.py

 

temp: <open file '<fdopen>', mode 'w+b' at 0x1004481e0>

temp.name: /tmp/prefix_UyCzjc_suffix

 

 

tempfile.mkstemp([suffix=''[, prefix='tmp'[, dir=None[, text=False]]]])

    mkstemp方法用于创建一个临时文件。该方法仅仅用于创建临时文件,调用tempfile.mkstemp函数后,返回包含两个元素的元组,第一个元素指示操作该临时文件的安全级别,第二个元素指示该临时文件的路径。参数suffix和prefix分别表示临时文件名称的后缀和前缀;dir指定了临时文件所在的目录,如果没有指定目录,将根据系统环境变量TMPDIRTEMP或者TMP的设置来保存临时文件;参数text指定了是否以文本的形式来操作文件,默认为False,表示以二进制的形式来操作文件。

tempfile.mktemp([suffix=''[, prefix='tmp'[, dir=None]]])

    mktemp用于返回一个临时文件的路径,但并不创建该临时文件。

tempfile.tempdir

    该属性用于指定创建的临时文件(夹)所在的默认文件夹。如果没有设置该属性或者将其设为None,Python将返回以下环境变量TMPDIR, TEMP, TEMP指定的目录,如果没有定义这些环境变量,临时文件将被创建在当前工作目录。

tempfile.gettempdir()

    gettempdir()则用于返回保存临时文件的文件夹路径

 

转:http://www.cnblogs.com/captain_jack/archive/2011/01/19/1939555.html

分享到:
评论

相关推荐

    Python 笔记源码——内含python后端&机器学习等.zip

    Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...

    python小游戏——扫雷

    python小游戏——扫雷

    python项目——智慧校园考试系统.zip

    python项目——智慧校园考试系统.zip python项目——智慧校园考试系统.zip python项目——智慧校园考试系统.zip python项目——智慧校园考试系统.zip python项目——智慧校园考试系统.zip python项目——智慧校园...

    Python深度学习实战——基于Pytorch全书电子教案完整版ppt整套教学课件最全教学教程.pptx

    Python深度学习实战——基于Pytorch全书电子教案完整版ppt整套教学课件最全教学教程.pptx

    Word版,Python GUI设计——Tkinter菜鸟编程(上、中、下)

    ### Python GUI设计——Tkinter基础知识详解 #### 一、Tkinter简介 Tkinter是Python标准库中的一个图形用户界面(GUI)工具包,它提供了一系列的控件来帮助开发者快速构建用户界面。由于其易用性和跨平台特性,...

    python项目——Word助手.zip

    python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目...

    python项目——DIY字符画.zip

    python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip ...

    Python学习笔记——运算符

    Python学习笔记——运算符 运算符: 赋值运算符 算术运算符 关系运算符 逻辑运算符 位运算

    python项目——BBS问答社区.zip

    python项目——BBS问答社区.zip python项目——BBS问答社区.zip python项目——BBS问答社区.zip python项目——BBS问答社区.zip python项目——BBS问答社区.zip python项目——BBS问答社区.zip python项目——BBS...

    python项目——企业编码管理.zip

    python项目——企业编码管理.zip python项目——企业编码管理.zip python项目——企业编码管理.zip python项目——企业编码管理.zip python项目——企业编码管理.zip python项目——企业编码管理.zip python项目——...

    python项目——微信机器人.zip

    python项目——微信机器人.zip python项目——微信机器人.zip python项目——微信机器人.zip python项目——微信机器人.zip python项目——微信机器人.zip python项目——微信机器人.zip python项目——微信机器人....

    python项目——甜橙音乐网.zip

    python项目——甜橙音乐网.zip python项目——甜橙音乐网.zip python项目——甜橙音乐网.zip python项目——甜橙音乐网.zip python项目——甜橙音乐网.zip python项目——甜橙音乐网.zip python项目——甜橙音乐网....

    吴茂贵等人著《Python深度学习——基于PyTorch》书籍代码.zip

    《Python深度学习——基于PyTorch》是一本深入探讨Python深度学习技术的著作,由吴茂贵等专家撰写。本书的核心是围绕PyTorch这一强大的深度学习框架进行讲解,旨在帮助读者掌握使用Python进行深度学习的实践技能。...

    083964-夏敏捷-Python课程设计——代码(全部).zip

    本资源“夏敏捷Python课程设计——代码(全部).zip”提供了丰富的Python编程实践项目,涵盖了多个主题,旨在帮助学习者深入理解和掌握Python的核心概念及高级特性。 1. **Tkinter图形界面应用**: - Tkinter是...

    Python学习笔记——输入input()

    Python学习笔记——输入input(),input()使用,两个练习。

    python项目——开心麻花影视作品分析.zip

    python项目——开心麻花影视作品分析.zip python项目——开心麻花影视作品分析.zip python项目——开心麻花影视作品分析.zip python项目——开心麻花影视作品分析.zip python项目——开心麻花影视作品分析.zip ...

    python项目——AI智能联系人管理.zip

    python项目——AI智能联系人管理.zip python项目——AI智能联系人管理.zip python项目——AI智能联系人管理.zip python项目——AI智能联系人管理.zip python项目——AI智能联系人管理.zip python项目——AI智能联系...

    python项目——五子棋(控制台版).zip

    python项目——五子棋(控制台版).zip python项目——五子棋(控制台版).zip python项目——五子棋(控制台版).zip python项目——五子棋(控制台版).zip python项目——五子棋(控制台版).zip python项目——...

    《Python 机器学习——预测分析核心算法》中一些相关代码(并没有完全一样,稍微有改动).zip

    《Python 机器学习——预测分析核心算法》中一些相关代码(并没有完全一样,稍微有改动)

    python项目——高德地图+58租房.zip

    python项目——高德地图+58租房.zip python项目——高德地图+58租房.zip python项目——高德地图+58租房.zip python项目——高德地图+58租房.zip python项目——高德地图+58租房.zip python项目——高德地图+58租房....

Global site tag (gtag.js) - Google Analytics