You need to enable JavaScript to run this app. Python中获取文件inode、文件名与绝对路径的可用模块及调用报错处理
优惠活动
大模型
产品
解决方案
定价
更多

Python中获取文件inode、文件名与绝对路径的可用模块及调用报错处理

报错核心原因

os.DirEntry是Python做目录扫描时的专用封装类,它的inode属性是绑定在类实例上的成员方法,根本不是可以直接传文件路径字符串调用的静态接口。直接把字符串路径丢给os.DirEntry.inode(),自然会触发“描述符无法作用于字符串对象”的类型不匹配错误。

可实现文件元信息提取的内置工具

完全不需要装第三方包,Python自带的几个模块就能覆盖所有需求:

  • os:提供传统的路径操作、文件状态查询接口
  • pathlib:面向对象写法的路径操作模块,比拼接os.path的写法更简洁
  • stat:配合文件状态返回值,解析inode、权限、大小这类元属性
原代码的问题修正
  1. 不要硬用DirEntry拿inode:跨平台兼容性最好的写法是直接通过os.stat(目标路径).st_ino获取inode值,不需要额外创建DirEntry实例
  2. 拼接类型不匹配的问题:inode返回的是整数类型,直接和字符串拼接会报错,需要先把整数转成字符串
修正后可直接运行的参考代码
import os
from pathlib import Path

filepath = "home/Documents/example.py"

# 提取文件名
file_name = Path(filepath).name
print("File Name: " + file_name)

# 提取绝对路径
abs_path = os.path.abspath(filepath)
print("File Path: " + abs_path)

# 正确获取inode值
inode_val = os.stat(filepath).st_ino
print("inode: " + str(inode_val))

注意:如果目标路径的文件实际不存在,os.stat()会抛出FileNotFoundError,可以提前通过Path(filepath).exists()做存在性校验,避免运行时报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.06 14:15:02