Skip to main content
 首页 » 编程设计

python之打开文件而不直接提供路径

2025年05月04日23soundcode

假设我有以下类(class):

class FileName(object): 
 def __init__(self,pathName): 
   self.pathName = pathName 
 
 def __repr__(self): 
   return self.pathName 
 
someFile = FileName(r'c:\users\sarith\a.txt') 

现在我知道我可以使用 os.stat(someFile.pathName) 或使用 os.stat(str(someFile)) 获取此文件的详细信息.有没有一种方法可以通过 os.stat(someFile) 获取详细信息。更具体地说,我的意思是有没有一个我可以覆盖的函数,这样当 FileName 的实例被 open 之类的函数调用时,它返回 pathName 属性?

请您参考如下方法:

这不是您期望存在的那种东西,但许多这样的函数实际上确实可以识别 __fspath__ method ,至少在 Python 3.6 上:

class FileName(object): 
    def __init__(self, path): 
        self.path = path 
    def __fspath__(self): 
        return self.path 
 
# Actually works! 
os.stat(FileName('/whatever'))