您现在的位置是:课程教程文章
python3 os中unlink如何使用?
2023-12-18 16:34课程教程文章 人已围观
-
iOS 中高级训练营V6.0_腾讯课堂
iOS 中高级训练营V6.0_腾讯课堂... -
杨涛教程带你玩转会声会影2019 Corel Vide
杨涛教程带你玩转会声会影2019 Corel Vide... -
Linux运维架构/云计算/centos/LAMP/源码编译
Linux运维架构/云计算/centos/LAMP/源码编译... -
PS 一学就通 名师带你掌握Photoshop技术精髓
PS 一学就通 名师带你掌握Photoshop技术精髓课程目标:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 打造...
大多时候我们会用函数来运行一些程序,可以说基本上代码的运行时离不开函数的使用的。今天就有小伙伴在使用函数时出现了问题,同时还有一些不解的地方向小编询问。在一起解决了unlink的问题之后,小编把这个问题分享给大家,让小伙伴们通过案例体会python3 os.unlink的使用。
问题:
下图箭头位置是 multiprocessing 包下 heap.py 的70行。
不明白为什么前面刚创建一个临时文件,紧接着就unlink掉了,然后我的问题是:
1.这样做是基于何种考虑?
2.为什么文件 unlink 掉了,后面还可以通过 fd 打开&写入?
3.程序在上图最后一行报:No such file or directory(如下图) 可能是什么情况?
解决:
在这里,mkstemp得到了两个值,一个赋值给了fd, 一个赋值给了name,这个name就是一个完整路径名,并行时只需要对文件进行操作,而mkstemp用完之后需要手动释放,而这里就可以直接把name释放,fd本身就是指向文件的,后续操作可能会用到,最迟会在join部分被释放。上下文对比,这是一个不难得到的结论。
>>> import tempfile >>> fd, name = tempfile.mkstemp() >>> fd 3 >>> name 'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\tmprwvqhg1d' >>> open(fd, 'w') <_io.TextIOWrapper name=3 mode='w' encoding='cp936'> >>> type(fd) <class 'int'> >>> import os >>> os.unlink(name) >>> "tmprwvqhgld" in dir("C:/users/public/documents/wondershare/creatortemp") False >>> file = 7 >>> with open(file, 'wb') as f: ... pass ... Traceback (most recent call last): File "<stdin>", line 1, in <module> OSError: [WinError 6] 句柄无效。
相信有部分小伙伴看完知道unlink掉了该如何解决了,还不懂得可以跟周围人再多交流一下。更多Python学习推荐:PyThon学习网教学中心。
课程教程:python3 os中unlink如何使用?下一篇:没有了