本文主要是介绍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 dataprint(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路径;
这篇关于python 创建临时文件读写的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!