如何使用 os.walk() 在 Python 中处理 OSX 别名?

2024-02-29

我正在使用 Python 2.7.x 遍历目录树,并在遍历时获取文件和目录的大小。我遇到的问题是,它将别名文件误认为是目录,然后抛出“没有这样的文件或目录”的错误。

代码如下:

def get_size(start_path = '.'):
    total_size = 0
    for dirpath, dirnames, filenames in os.walk(start_path):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            total_size += os.path.getsize(fp)
    return total_size

for dirName, subdirList, fileList in os.walk(rootDir, topdown=False):

    dirSize = get_size(dirName) #this throws an error on alias files

    for fname in fileList:
              #do other things

我也尝试了 os.path.isdir() ,但这不起作用。此外,我尝试过

return File.FSResolveAliasFile(path, True)[0].as_pathname()

但这似乎并没有获取所有别名文件。

有什么想法吗?


请参阅我的评论https://stackoverflow.com/a/21197881/838253 https://stackoverflow.com/a/21197881/838253为背景。

简而言之,你不能在 Python 中做到这一点。有一个可以解析别名的库,但这依赖于过时的 Carbon 库,并且不再有效。

您可以在终端检测别名。

或许可以区分,因为alias有扩展属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 os.walk() 在 Python 中处理 OSX 别名? 的相关文章

随机推荐