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

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


咨詢
建站咨詢
