欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python用access判斷文件是否被占用的實例方法

 更新時間:2020年12月17日 08:31:32   作者:小妮淺淺  
在本篇文章里小編給大家整理的是一篇關(guān)于Python用access判斷文件是否被占用的實例方法,有興趣的朋友們可以學(xué)習(xí)下。

有的小伙伴想知道用access()函數(shù)可以判斷一個文件被占用嗎?理論上來說是不行的,access()返回的是文件的讀寫屬性。為了讓小伙伴們信服,小編進(jìn)行了簡單的測試。

>>> import os
>>> fn = r'D:\temp\csdn\t.py' # 測試用的文件
>>> os.access(fn, os.F_OK) # 文件是否存在
True
>>> os.access(fn, os.R_OK) # 文件是否可讀
True
>>> os.access(fn, os.W_OK) # 文件是否可寫
True
>>> os.access(fn, os.X_OK) # 文件是否可執(zhí)行
True
>>> fp = open(fn, 'a+') # 以追加寫的方式打開文件
>>> os.access(fn, os.F_OK) # 文件當(dāng)然還在
True
>>> os.access(fn, os.R_OK) # 文件依然可讀
True
>>> os.access(fn, os.W_OK) # 文件依然可寫
True
>>> os.access(fn, os.X_OK) # 文件依然執(zhí)行
True
>>> fp.close()

可見,os.access()返回的是文件讀寫屬性,與文件是否被占用沒有半毛錢關(guān)系。

后來,群里有同學(xué)建議說,不妨用try嘗試著open文件,如果成功,表示文件沒有被占用,如果拋出異常,則表示文件被占用。果真如此嗎?還是用代碼驗證一下吧。

>>> fp1 = open(fn, 'a+')
>>> fp2 = open(fn, 'a+')
>>> fp1.close()
>>> fp2.close()

結(jié)果表明,對同一個文件以寫的方式打開多次,系統(tǒng)并沒有拋出異常。為什么會這樣呢?究其原因,是因為文件被打開和文件被占用是完全兩個不同的問題。順便提醒一下,做上面的測試時,不要使用'w'的方式,否則文件內(nèi)容會被清空。

那么,究竟應(yīng)該如何用Python判斷一個文件是否被占用呢?這個問題還是要回歸到操作系統(tǒng)層面來解決,也就是依賴win32api模塊。

>>> import win32file
>>> def is_used(file_name):
  try:
    vHandle = win32file.CreateFile(file_name, win32file.GENERIC_READ, 0, None, win32file.OPEN_EXISTING, win32file.FILE_ATTRIBUTE_NORMAL, None)
    return int(vHandle) == win32file.INVALID_HANDLE_VALUE
  except:
    return True
  finally:
    try:
      win32file.CloseHandle(vHandle)
    except:
      pass
>>> fn = r'D:\temp\csdn\t.py'
>>> is_used(fn)
False
>>> fp = open(fn, 'a+')
>>> is_used(fn)
True
>>> fp.close()
>>> is_used(fn)
False

簡單驗證了一下,函數(shù)is_used()基本可用。

到此這篇關(guān)于Python用access判斷文件是否被占用的實例方法的文章就介紹到這了,更多相關(guān)Python怎樣用access判斷文件是否被占用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python表格處理模塊xlrd在Anaconda中的安裝方法

    Python表格處理模塊xlrd在Anaconda中的安裝方法

    本文介紹在Anaconda環(huán)境下,安裝Python讀取.xls格式表格文件的庫xlrd的方法,xlrd是一個用于讀取Excel文件的Python庫,本文介紹了xlrd庫的一些主要特點和功能,感興趣的朋友一起看看吧
    2024-04-04
  • Python中kivy庫的使用教程詳解

    Python中kivy庫的使用教程詳解

    Kivy是一個開源Python框架,用于構(gòu)建具有創(chuàng)意和多點觸控功能的用戶界面(UI)應(yīng)用程序,本文主要為大家介紹了一下Kivy的具體使用,需要的可以參考下
    2024-01-01
  • Python Pillow 圖像處理庫詳解(常用Pillow函數(shù)及其參數(shù))

    Python Pillow 圖像處理庫詳解(常用Pillow函數(shù)及其參數(shù))

    Pillow,原名PIL(Python Imaging Library),是一個功能強(qiáng)大的Python圖像處理庫,支持多種格式,提供豐富的圖像操作功能,如旋轉(zhuǎn)、縮放、顏色轉(zhuǎn)換等,以及易于使用的API,Pillow支持廣泛的圖像文件格式,并提供圖像過濾、繪制等功能
    2024-09-09
  • Python定時任務(wù)實現(xiàn)方案

    Python定時任務(wù)實現(xiàn)方案

    這篇文章主要介紹了Python定時任務(wù)實現(xiàn)的方案,定時執(zhí)行的任務(wù),可以是一段bash命令,也可以是一個腳本文件。通常用于我們需要在特定時刻做事情,下面來看看文章詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • 解析numpy中的iscomplex方法及實際應(yīng)用

    解析numpy中的iscomplex方法及實際應(yīng)用

    NumPy 的 iscomplex 方法為檢查數(shù)組中的元素是否為復(fù)數(shù)提供了一種高效且易于使用的接口,本文介紹了 iscomplex 方法的基本概念、使用方法以及它在解決實際問題中的應(yīng)用,需要的朋友可以參考下
    2024-06-06
  • 基于Python實現(xiàn)地標(biāo)景點識別功能

    基于Python實現(xiàn)地標(biāo)景點識別功能

    地標(biāo)景點識別是一種基于計算機(jī)視覺技術(shù)的應(yīng)用,旨在通過對圖像進(jìn)行分析和處理,自動識別出圖片中的地標(biāo)景點,本文將介紹地標(biāo)景點識別的背景和原理,并使用Python編程語言來實現(xiàn)一個簡單的地標(biāo)景點識別系統(tǒng),感興趣的朋友可以參考下
    2024-01-01
  • yolov5中head修改為decouple?head詳解

    yolov5中head修改為decouple?head詳解

    現(xiàn)成的YOLOv5代碼真的很香,不管口碑怎么樣,我用著反正是挺爽的,下面這篇文章主要給大家介紹了關(guān)于yolov5中head修改為decouple?head的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Python 機(jī)器學(xué)習(xí)第一章環(huán)境配置圖解流程

    Python 機(jī)器學(xué)習(xí)第一章環(huán)境配置圖解流程

    機(jī)器學(xué)習(xí)是一類算法的總稱,這些算法企圖從大量歷史數(shù)據(jù)中挖掘出其中隱含的規(guī)律,并用于預(yù)測或者分類,更具體的說,機(jī)器學(xué)習(xí)可以看作是尋找一個函數(shù),輸入是樣本數(shù)據(jù),輸出是期望的結(jié)果,只是這個函數(shù)過于復(fù)雜,以至于不太方便形式化表達(dá)
    2021-11-11
  • Python實例詳解遞歸算法

    Python實例詳解遞歸算法

    遞歸(英語:Recursion),又譯為遞回,在數(shù)學(xué)與計算機(jī)科學(xué)中,是指在函數(shù)的定義中使用函數(shù)自身的方法。遞歸一詞還較常用于描述以自相似方法重復(fù)事物的過程。本文將詳細(xì)為大家介紹Python中的遞歸算法,需要的可以參考一下
    2022-03-03
  • Python自動化運維和部署項目工具Fabric使用實例

    Python自動化運維和部署項目工具Fabric使用實例

    Fabric是一個Python庫,只要目標(biāo)機(jī)器支持ssh訪問,就可以借助fabric來進(jìn)行遠(yuǎn)程操作(如在host1上對host2遠(yuǎn)程運行shell命令),顯然,由于fabric是個Python package,故其它Python package都可以被import到fabric特有的fabfile.py腳本中
    2016-09-09

最新評論