哪些python库可用于在MacOSX文件系统上获取详细的文件属性?我有预感它使用os
模块,但我无法通过python访问这些属性。
我想访问的最重要的属性是文件' kind'。请注意,我不是在讨论扩展程序,而是在下面的屏幕截图中的第4列(取自this SuperUser question)。例如,当我遍历这个目录中的这些文件时,我怎样才能获得"纯文本文档"作为license.txt的那种?我的应用程序是一个文件处理脚本,应该从主题演讲/页面/数字包文件中识别目录。
关于重复的说明:
另请注意,我已经看到了particular SO question,这与一般的* nix文件系统有关。我的问题是MacOS文件系统的这个问题的一个子集,可能有一些在该问题中未讨论的特性。如果用户可以提供 HOW python-magic
的示例,可用于获取文件类型,那么这将提供比上述文章更有用的解决方案。
答案 0 :(得分:0)
您可以从os.stat()获取最后修改日期和文件大小。
文件类型更复杂,因为至少有两种不同的方法可以从操作系统中获取人类可读的描述。为此,您需要的库是pyobjc,它允许您a)查询NSWorkspace和LaunchServices以获取UTI相关数据,或b)为单个文件创建NSURL并查询它们的资源类型。我相信b)更接近Finder的作用。
以下是一个说明这两种方法的示例:
from AppKit import NSWorkspace
from LaunchServices import UTTypeCopyDescription
from Cocoa import NSURL, NSURLLocalizedTypeDescriptionKey
from datetime import datetime
import os
for f in os.listdir("."):
uti = NSWorkspace.sharedWorkspace().typeOfFile_error_(f, None)[0]
desc = UTTypeCopyDescription(uti)
url = NSURL.fileURLWithPath_(f)
urlType = url.getResourceValue_forKey_error_(None, NSURLLocalizedTypeDescriptionKey, None)[1]
sr = os.stat(f)
size = sr.st_size
date = datetime.fromtimestamp(sr.st_mtime).strftime('%Y-%m-%d %H:%M:%S')
print("%-20s size=%s modified=%s uti=%s desc=%s url=%s" % (f, size, date, uti, desc, urlType))