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

如何将PySide2中打印的QFileSystemModel对象信息转为常规可读格式?

PySide2中转换模型打印内容为可读形式的方法

当你执行以下代码时:

proxy = self.tree_view.model()
print(proxy)

得到的输出是<PySide2.QtWidgets.QFileSystemModel(0x1f00bde4c60) at 0x000001F012D3F488>,这是Qt对象默认的字符串表示,包含类名、内存地址等信息。要转换成常规可读形式,可参考以下几种方法:

1. 获取模型的类名

如果只需要明确模型的类型,直接提取类名即可:

print(type(proxy).__name__)
# 输出结果:QFileSystemModel

也可以用proxy.__class__.__name__得到同样结果。

2. 获取模型的具体业务信息

针对QFileSystemModel这类文件系统模型,调用它的内置方法就能获取实际业务相关的可读信息,比如根路径、文件属性等:

# 打印模型类型和根路径
print(f"模型类型:{type(proxy).__name__},根路径:{proxy.rootPath()}")

# 查看根目录的具体信息
root_index = proxy.index(proxy.rootPath())
print(f"根目录名称:{proxy.fileName(root_index)},目录大小:{proxy.size(root_index)}字节")

3. 自定义对象的打印格式

如果需要长期统一自定义这类模型的输出格式,可以通过子类重写Qt模型类的__str__方法实现:

from PySide2.QtWidgets import QFileSystemModel

class ReadableFileSystemModel(QFileSystemModel):
    def __str__(self):
        return f"ReadableFileSystemModel(类型: {self.__class__.__name__}, 根路径: {self.rootPath()}, 对象地址: {hex(id(self))})"

# 使用自定义类创建模型
model = ReadableFileSystemModel()
model.setRootPath("/")
print(model)
# 输出示例:ReadableFileSystemModel(类型: ReadableFileSystemModel, 根路径: /, 对象地址: 0x1f00bde4c60)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:01:17