新聞中心
大多時候我們會用函數(shù)來運行一些程序,可以說基本上代碼的運行時離不開函數(shù)的使用的。今天就有小伙伴在使用函數(shù)時出現(xiàn)了問題,同時還有一些不解的地方向小編詢問。在一起解決了unlink的問題之后,小編把這個問題分享給大家,讓小伙伴們通過案例體會python3 os.unlink的使用。

公司專注于為企業(yè)提供網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、商城網(wǎng)站定制開發(fā),成都小程序開發(fā),軟件按需網(wǎng)站開發(fā)等一站式互聯(lián)網(wǎng)企業(yè)服務。憑借多年豐富的經(jīng)驗,我們會仔細了解各客戶的需求而做出多方面的分析、設(shè)計、整合,為客戶設(shè)計出具風格及創(chuàng)意性的商業(yè)解決方案,成都創(chuàng)新互聯(lián)公司更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務。
問題:
下圖箭頭位置是 multiprocessing 包下 heap.py 的70行。
不明白為什么前面剛創(chuàng)建一個臨時文件,緊接著就unlink掉了,然后我的問題是:
1.這樣做是基于何種考慮?
2.為什么文件 unlink 掉了,后面還可以通過 fd 打開&寫入?
3.程序在上圖最后一行報:No such file or directory(如下圖) 可能是什么情況?
解決:
在這里,mkstemp得到了兩個值,一個賦值給了fd, 一個賦值給了name,這個name就是一個完整路徑名,并行時只需要對文件進行操作,而mkstemp用完之后需要手動釋放,而這里就可以直接把name釋放,fd本身就是指向文件的,后續(xù)操作可能會用到,最遲會在join部分被釋放。上下文對比,這是一個不難得到的結(jié)論。
>>> 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)>>> 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 " ", line 1, in OSError: [WinError 6] 句柄無效。
相信有部分小伙伴看完知道unlink掉了該如何解決了,還不懂得可以跟周圍人再多交流一下。更多Python學習推薦:PyThon學習網(wǎng)教學中心。
標題名稱:創(chuàng)新互聯(lián)Python教程:python3os中unlink如何使用?
本文鏈接:http://fisionsoft.com.cn/article/cojdjhj.html


咨詢
建站咨詢
