大多数时候我们会使用函数来运行一些程序。可以说基本上代码的运行离不开函数的使用。今天有些朋友在使用函数的时候遇到了问题,同时也有一些不解的地方向小编请教。一起解决unlink的问题后,小编把这个问题分享给大家,让小伙伴们通过案例体验python3 os.unlink的使用。
问题:
下图箭头位置是 multiprocessing 包下 heap.py 的70行。
我不明白为什么之前创建了一个临时文件,然后
unlink掉了,然后我的问题是:
1.这样做是基于何种考虑?
2.为什么文件 unlink 掉了,后面还可以通过 fd 打开&写入?
3、上图最后一行程序报:No such file or directory(如下图)可能是什么情况?
解决:
这里mkstemp得到两个值,一个赋给fd,一个赋给name,这个name是一个完整的路径名,只需要并行操作文件,mkstemp用完后需要手动释放,而这里的名字可以直接释放,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分布式执行框架Ray介绍11/08
- ♥ 17个Python骚操作,你都Ok吗?01/01
- ♥ python环境和python虚拟环境有什么区别10/13
- ♥ python可以重写方法吗12/24
- ♥ python实例方法使用注意事项10/18
- ♥ Python中threading.RLock的使用10/30
内容反馈