python 创建临时文件读写

python读 写临时文件

看到网上一篇文章提到面试的时候,面试官提到以下要求:

假设你正在编写的方法,需要每次执行时,在服务器上创建一个临时文件同时支持书写部分内容,而后将该文件的位置传输给第三方的类。待第三方类获取到你文本内的数据时,最后执行对该临时文件的删除操作,同时需要支持高可用,也就是写入,再读取一次便销毁。

挺有意思的一个题,本来想手写实现,搜了搜原来python已经有了相关的轮子,那干嘛还造轮子,下面是代码。

import tempfile
def read_temp_file(file_object=None):
    """
    读取临时文件信息
    :param file_object:
    :return:
    """
    data = file_object.read()  # read方法会读取临时文件中的内容,并随之销毁临时文件
    final_data = data.decode() if isinstance(data, bytes) else data
    print(f'read file info:{final_data}')

def make_write_temp_file(content:str):
    """
    写入临时文件内容
    :return:
    """
    _tmp_file = tempfile.TemporaryFile()  # 查看该类发现是以:w+b方式写入文件的,该模式支持热读写,并且要求写入格式是二进制
    try:
        print(_tmp_file.name)
        # _tmp_file.write(b"something\n")
        _tmp_file.write(content.encode("utf-8"))  # 需要写入二进制
        _tmp_file.seek(0)
        # 读取并销毁临时文件
        read_temp_file(_tmp_file)
    finally:
        _tmp_file.close()  # 关闭文件资源
        
if __name__ == '__main__':

    make_write_temp_file("我是临时文件")


# 结果
# C:\Users\ADMINI~1\AppData\Local\Temp\tmpgc9jb6nq
# read file info:我是临时文件

win临时文件路径:C:\Users\ADMINI~1\AppData\Local\Temp\tmpkllcmso7;其中Temp后面的文件名每次创建写入文件的时候都是随机的,确保了高可用,不会让其他第三方打开读取临时文件;LINUX临时文件路径:/tmp路径; 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值