最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python3 os中unlink如何使用?

    正文概述    2020-04-07   447

    python3 os中unlink如何使用?

    大多时候我们会用函数来运行一些程序,可以说基本上代码的运行时离不开函数的使用的。今天就有小伙伴在使用函数时出现了问题,同时还有一些不解的地方向小编询问。在一起解决了unlink的问题之后,小编把这个问题分享给大家,让小伙伴们通过案例体会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] 句柄无效。


    相信有部分小伙伴看完知道unlink掉了该如何解决了,还不懂得可以跟周围人再多交流一下。更多Python学习推荐:起源地模板网教学中心


    下载网 » python3 os中unlink如何使用?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元