Python을 사용하여 파일의 사용 여부를 판단하는 방법 튜토리얼
>>> 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) #
True
>>> fp = open(fn, 'a+') #
>>> 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) #
True
>>> fp.close()
보이다access () 는 파일 읽기와 쓰기 속성을 되돌려줍니다. 파일이 점용되었는지 여부와 반 푼의 관계가 없습니다.나중에 그룹에서 어떤 학우들은try로 오픈 파일을 시도해 봐도 괜찮다고 건의했다. 만약 성공한다면 파일이 점용되지 않았고, 이상을 던지면 파일이 점용되었다는 뜻이다.과연 그럴까?코드로 검증하는 게 낫겠다.
>>> fp1 = open(fn, 'a+')
>>> fp2 = open(fn, 'a+')
>>> fp1.close()
>>> fp2.close()
그 결과 같은 파일을 쓰는 방식으로 여러 번 열었지만 시스템에서 이상이 발견되지 않았다.왜 이러지?그 이유는 파일이 열리는 것과 파일이 차지하는 것이 완전히 다른 문제이기 때문이다.상기 테스트를 할 때'w'방식을 사용하지 마십시오. 그렇지 않으면 파일 내용이 비워질 것입니다.그렇다면 도대체 파이썬으로 파일이 점용되었는지 아닌지를 어떻게 판단해야 합니까?이 문제는 운영체제 차원으로 돌아가서 해결해야 한다. 즉, 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
간단하게 검증했어, 함수 is_used () 는 기본적으로 사용할 수 있습니다.Python을 사용하여 하나의 파일이 점용되었는지 판단하는 글에 대해 소개합니다. 더 많은 Python 판단 파일이 점용되었는지에 대한 내용은 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.