温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python3 os中unlink的使用方法

发布时间:2020-11-20 09:22:26 来源:亿速云 阅读:217 作者:小新 栏目:编程语言

小编给大家分享一下python3 os中unlink的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

问题:

下图箭头位置是 multiprocessing 包下 heap.py 的70行。

python3 os中unlink的使用方法 

不明白为什么前面刚创建一个临时文件,紧接着就unlink掉了,然后我的问题是:

1.这样做是基于何种考虑?

2.为什么文件 unlink 掉了,后面还可以通过 fd 打开&写入?

3.程序在上图最后一行报:No such file or directory(如下图) 可能是什么情况?

python3 os中unlink的使用方法 

解决:

在这里,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] 句柄无效。

以上是python3 os中unlink的使用方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI