tempfile创建临时文件

| 分类 python  | 标签 util  python  浏览次数: -

普通方法 创建临时文件存储数据

import os

def create_temp_file():
    print "正常方法 开始创建临时文件..."
    filename = '%s.txt' % os.getpid()

    temp = open(filename, 'wb+')
    try:
        print "temp name: ", temp.name
        temp.write("123456789abc")
    finally:
        temp.close()
        os.remove(filename)

tempfile 创建临时文件,创建的临时文件没有名字

import tempfile


def temp_file():
    print "temp file 创建临时文件..."
    # TemporaryFile创建的临时文件没有文件名
    temp = tempfile.TemporaryFile()
    try:
        print "temp name:", temp.name
        temp.write('123456789abc')
        # 不用seek(N)无法读取数据: 从N开始往后读取
        temp.seek(0)
        print temp.read()
    finally:
        temp.close()

创建文件时指定模式

def temp_file_mode():
    print "temp file 以text模式运行"
    temp = tempfile.TemporaryFile(mode='w+t')
    try:
        temp.writelines(['first\n', 'second\n'])
        temp.seek(0)

        for line in temp:
            print "line:", line.rstrip()
    finally:
        temp.close()

tempfile创建有名字的临时文件

def temp_file_name():
    print "创建有名字的临时文件..."
    # 创建后还是会自动删除
    temp = tempfile.NamedTemporaryFile()
    # 自己定义文件名格式 dir + prefix + random + suffix
    temp_name = tempfile.NamedTemporaryFile(suffix='_suffix', prefix='prefix_', dir='/tmp')
    try:
        print "temp name:", temp.name
        print "temp_name:", temp_name.name
    finally:
        temp.close()

创建需要自己手动删除的临时文件

def temp_file_mkstemp():
    print "创建需要手动删除的临时文件..."
    # 创建临时文件, 需要手动删除。 返回两个参数: 临时文件安全级别, 临时文件路径
    security_level, file_name = tempfile.mkstemp(suffix='_suffix', prefix='prefix_', dir='/tmp', text=False)
    print "安全级别:", security_level
    print "文件名:", file_name

tempfile创建临时目录

def temp_file_dir():
    print "创建临时目录..."
    # 目录需要自己手动删除
    directory_name = tempfile.mkdtemp(suffix='_suffix', prefix='prefix_', dir='/tmp')
    print directory_name

只返回临时文件路径,并不真正创建

def temp_file_mktemp():
    print "返回临时文件的路径..."
    # 返回一个临时文件的路径,但并不创建该临时文件
    file_name = tempfile.mktemp(suffix='_suffix', prefix='prefix_')
    print file_name

上一篇 《鸟哥的 Linux 私房菜》     下一篇 windows 共享网络
目录导航