You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python 3.8.0中检查文件s1.txt是否处于打开状态?

Python 3 检查文件是否处于打开状态

针对当前代码内的文件对象检查

你用的with语句会自动管理文件资源,代码块结束后文件会自动关闭。如果要判断当前持有的文件对象是否处于打开状态,直接访问文件对象的closed属性即可:

with open("s1.txt", "r") as f:
    print(f.closed)  # 输出 False,此时文件处于打开状态
    x = f.read()
print(f.closed)  # 输出 True,with块结束后文件已自动关闭

检查文件是否被其他进程占用

如果要判断目标文件是否被其他进程打开,可以尝试以独占模式打开文件,失败则说明文件正被占用:

Python 3.10+ 版本写法

def is_file_open(filename):
    try:
        # 以独占模式打开文件,被占用时会触发权限错误
        with open(filename, "r+", exclusive=True):
            return False
    except PermissionError:
        return True
    except FileNotFoundError:
        print("目标文件不存在")
        return False

# 调用示例
print(is_file_open("s1.txt"))

兼容更早Python 3版本的写法

如果你的Python版本低于3.10,用os模块的系统调用实现:

import os

def is_file_open(filename):
    try:
        # 以读写+独占模式打开文件
        fd = os.open(filename, os.O_RDWR | os.O_EXCL)
        os.close(fd)
        return False
    except OSError:
        # 抛出OSError说明文件被占用或无法打开
        return True

# 调用示例
print(is_file_open("s1.txt"))

内容的提问来源于stack exchange,提问作者Mohit Narwani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:10:21