如何通過(guò)python檢查文件是否被占用
一、思路
1、通過(guò)window的aip函數(shù)CreateFile()函數(shù)獲得文件句柄
2、檢測(cè)在獲得句柄的時(shí)候是否報(bào)錯(cuò)“文件被占用無(wú)法打開(kāi)”
3、如果沒(méi)有報(bào)錯(cuò)返回文件句柄,說(shuō)明文件沒(méi)有被占用;如果報(bào)錯(cuò)說(shuō)明文件被占用
二、需import
import win32file和 from ctypes import windll 兩個(gè)庫(kù)
三、代碼
#-*- coding: utf-8 -*-
from ctypes import windll
import time
import win32file
from win32file import *
def is_open(filename):
try:
#首先獲得句柄
vHandle =win32file.CreateFile(filename, GENERIC_READ, 0, None, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, None)
#判斷句柄是否等于INVALID_HANDLE_VALUE
if int(vHandle)==INVALID_HANDLE_VALUE:
print("# file is already open")
return True # file is already open
win32file.CloseHandle(vHandle)
except Exception as e:
print(e)
return True
該代碼說(shuō)白了就是將C++的寫(xiě)法按python寫(xiě)法來(lái)寫(xiě)的,網(wǎng)上的其他寫(xiě)法通過(guò)os包來(lái)做的我發(fā)現(xiàn)失敗了。
到此這篇關(guān)于如何通過(guò)python檢查文件是否被占用的文章就介紹到這了,更多相關(guān)python文件占用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python和TFIDF實(shí)現(xiàn)提取文本中的關(guān)鍵詞
TFIDF 的工作原理是按比例增加一個(gè)詞語(yǔ)在文檔中出現(xiàn)的次數(shù),但會(huì)被它所在的文檔數(shù)量抵消。本文將利用TFIDF實(shí)現(xiàn)提取文本中的關(guān)鍵詞,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧2022-04-04
python使用response.read()接收json數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇python使用response.read()接收json數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
如何在Python中使用pyecharts圖形畫(huà)可視化大屏
最近碰巧需要用到pyecharts,pyecharts庫(kù)是一個(gè)用于生成echarts圖表的類(lèi)庫(kù),這篇文章主要給大家介紹了關(guān)于如何在Python中使用pyecharts圖形畫(huà)可視化大屏的相關(guān)資料,需要的朋友可以參考下2024-05-05
numpy數(shù)組之讀寫(xiě)文件的實(shí)現(xiàn)
本文主要介紹了numpy數(shù)組之讀寫(xiě)文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
使用Python連接SQLite數(shù)據(jù)庫(kù)的操作步驟
SQLite是一種輕量級(jí)的嵌入式數(shù)據(jù)庫(kù),廣泛應(yīng)用于各種應(yīng)用程序中,Python提供了內(nèi)置的sqlite3模塊,使得連接和操作SQLite數(shù)據(jù)庫(kù)變得非常簡(jiǎn)單,本文給大家介紹了使用Python連接SQLite數(shù)據(jù)庫(kù)的操作步驟,需要的朋友可以參考下2024-12-12

