【摘要】本故事纯属虚构,如有巧合,他们故事中的美女面试官一定没有我的美女,请自己脑补一下……小P和大多数Python自学者一样,苦学半年,一朝为师,投简历。这不,一家招聘初级Python开发工程师的公司发来了面试邀请,小P赶紧准备好行头,开开心心去赴约。努力自学的小P,面试一开始就有美女面试官打招呼,小P决定好好表现。经过一轮例行的自我介绍,就到了技术面试的时间。美女面试官问了这样一个问题:“假设你写的这个方法需要在服务器上创建一个临时文件,并且支持每次执行时写入部分内容,然后把文件的位置转移到第三方——party类。等待第三方类获取到你文本中的数据后,最终会删除临时文件。请完成纸上的代码:“小P的回答小P心想,这位美女还是挺有心计的,问边读边写,不过这对我来说并不难,soeasy!于是开始了他的“表演”:写完之后,小P自信满满地给美女面试官一个微笑。通过小P的代码可以看出,他对文件的读写还是有一定的了解的。知道了w+方法可以同时支持读写操作,通过seek的指针偏移达到读取写入内容的效果,你觉得小P的答案能给多少分呢?结局:黯然离开现场。美女面试官沉思了半天,说道:“虽然我们招的是初级Python开发人员,但是要求不高,但是你明白我说的临时文件是什么意思吗?你觉得用tmp定义一个文件名是不是叫临时文件?而且,如果你的上游服务还存在多次调用你,你定义的变量支持高可用吗?”小P的心一沉,采访只能在美女面试官的微笑中结束……更好的回答那么,如果是,我们该如何回答呢?由于是初级Python工程师的面试,问题本身并不难,只是因为小P没有关注Python的基础模块:tempfile。其实这道题如果用Python的tempfile模块就可以轻松实现:有时候知识面太窄,不仅容易重新造轮子,而且还不如原来的好用。**临时文件的简要说明。TemporaryFile会在临时路径下为系统动态创建:**windows:C:\Users\ADMINI~1\AppData\Local\Temp\linux:/tmp/创建一个以tmp+8位随机数开头的文件,并且调用文件的close方法时,会释放文件内存,删除临时文件。使用tempfile.TemporaryFile每次生成一个随机名字的文件,既满足了美女面试官对高可用的要求,又减少了代码,完美!当然我们也可以模拟这个模块自己实现一个临时文件生成器,但是前提是:判断操作系统调用随机数文件的自动清理等等,喜欢的朋友可以尝试搭建一个自己轮。好了,今天的文章分享就到这里。不积步数,可行千里。前一天晚上不要忽视这些小细节。最近项目进度太忙,有段时间没写原创了,希望大家喜欢...作者:华为云社区技术火炬手点击关注,第一时间了解最新华为云技术~
