Có bất kỳ chức năng python như:Làm thế nào để kiểm tra xem một is_open tập tin và open_status trong python
filename = "a.txt"
if is_open(filename) and open_status(filename)=='w':
print filename," is open for writing"
Có bất kỳ chức năng python như:Làm thế nào để kiểm tra xem một is_open tập tin và open_status trong python
filename = "a.txt"
if is_open(filename) and open_status(filename)=='w':
print filename," is open for writing"
Đây không phải là khá những gì bạn muốn, vì nó chỉ kiểm tra xem một tập tin nhất định là viết-thể . Nhưng trong trường hợp nó rất hữu ích:
import os
filename = "a.txt"
if not os.access(filename, os.W_OK):
print "Write access not permitted on %s" % filename
(Tôi không biết về bất kỳ cách nền tảng độc lập để làm những gì bạn yêu cầu)
Tôi không nghĩ rằng có một cách dễ dàng để làm những gì bạn muốn , nhưng bắt đầu có thể là xác định lại mở() và thêm mã quản lý của riêng bạn. Điều đó nói rằng, tại sao bạn muốn làm điều đó?
Dưới đây là một giải pháp is_open cho các cửa sổ sử dụng ctypes:
from ctypes import cdll
_sopen = cdll.msvcrt._sopen
_close = cdll.msvcrt._close
_SH_DENYRW = 0x10
def is_open(filename):
if not os.access(filename, os.F_OK):
return False # file doesn't exist
h = _sopen(filename, 0, _SH_DENYRW, 0)
if h == 3:
_close(h)
return False # file is not opened by anyone else
return True # file is already open
Cảm ơn! Nhưng có vẻ như os.access chỉ kiểm tra khả năng đọc/ghi của một tệp, nhưng tôi muốn kiểm tra xem tệp có ALREADY được mở hay không. Cảm ơn bạn đã đề xuất thêm. –