根据这个页面,不同的操作系统可以从操作系统统计功能。在
http://docs.python.org/2/library/os.html
我有兴趣得到类型和创作者。在
import os
from stat import *
print(os.stat('filename').st_ino)
print(os.stat('filename').st_creator)
此代码适用于inode(st_ino),但会给创建者提供一个错误:
AttributeError: 'posix.stat_result' object has no attribute 'st_creator'
st_类型和st_rsize相同。在
我需要做些什么特别的事情来让这些工作正常吗?在
(这是MacOSX10.5和10.8和Python2。我是Python新手。)
你可以查一下
查看系统上有哪些属性可用。 不幸的是,macosX没有返回文件所有者的用户名,所以您需要类似
^{pr2}$pwd
的东西将用户ID“转换”为username。在正如另一个答案所提到的,文档中的macos意味着osx之前的版本。在经典的Mac OS中,
stat
是被模拟的,而Pythonstat
实际上意味着OS X上的stat
因此,您无法获得类型和创建者操作系统统计。相应的低级调用是
getattrlist
,但这不是Python包装的(也不应该真正使用它)。通过打印,您可以确切地看到stat
返回的内容:让我们在
^{pr2}$foo
上设置一个类型和创建者来测试:python2.x中最简单的答案是
MacOS.GetCreatorAndType
。然而,它在3.x中消失了,它使用的底层机制也被弃用。如果你的目标仅仅是为自己完成某件事,那么一定要用它。在一种更能证明未来的机制是使用PyObjC,它在Python 3.x上工作,不使用不推荐使用的OS x API:
这些都是整数,因为PyObjC没有四个字符代码的映射(也没有适当的元数据来理解它得到了什么)。下面是一个快速映射函数,用于检索四个字符的字符串:
(如果您使用的是python3,请将上面的
xrange
替换为range
。)请注意,一般情况下,类型/创建者在OSX中使用不多;它们的功能已被文件扩展名、UTI、MIME类型、每用户和每个文档应用程序绑定所取代。在
此处文档中的“Mac OS”表示Mac OS Classic,即在X之前。对于OSX,unix和FreeBSD注释是相关的。在
相关问题 更多 >
编程相关推荐