How to get extended MacOS attributes of a file using python?

后端 未结 1 490
Happy的楠姐
Happy的楠姐 2020-12-18 05:37

I\'m interested in getting more information from a file using python.

I know that using os.stat (such as below) returns information on the file, but I\'d like to get

相关标签:
1条回答
  • 2020-12-18 06:15

    My example:

    xattr -lp com.apple.metadata:kMDItemWhereFroms ~/Projects/apimon/apimon/check/tests/resources/brus-\>lux\ dec\ 28.pdf 
    com.apple.metadata:kMDItemWhereFroms:
    00000000  62 70 6C 69 73 74 30 30 A2 01 02 5F 10 54 68 74  |bplist00..._.Tht|
    00000010  74 70 73 3A 2F 2F 62 65 2D 69 6E 74 65 72 6E 65  |tps://be-interne|
    00000020  74 2E 62 65 6E 65 2D 73 79 73 74 65 6D 2E 63 6F  |t.bene-system.co|
    00000030  6D 2F 2F 68 70 2F 70 64 66 73 65 72 76 69 63 65  |m//hp/pdfservice|
    00000040  3F 70 64 66 3D 4B 4C 57 56 57 4C 47 31 34 34 35  |?pdf=KLWVWLG1445|
    00000050  30 31 33 33 39 30 32 33 36 42 53 31 36 39 32 30  |013390236BS1690|
    00000060  31 35 50 08 0B 62 00 00 00 00 00 00 01 01 00 00  |15P..b..........|
    00000070  00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00  |................|
    00000080  00 00 00 00 00 63                                |.....c|
    00000086
    

    looks like there is a package called xattr doesnt look bad.. (you need to pip install xattr it)

    In [6]: import xattr
    In [7]: x = xattr.xattr('/Users/buzzi/Projects/apimon/apimon/check/tests/resources/brus->lux dec 28.pdf')
    
    In [8]: x.items()
    Out[8]: 
    [(u'com.apple.metadata:kMDItemWhereFroms',
      'bplist00\xa2\x01\x02_\x10Thttps://be-internet.bene-system.com//hp/pdfservice?pdf=KLWVWLG1445013390236BS169201P\x08\x0bb\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00c'),
     (u'com.apple.quarantine',
      '0001;562127d1;Google Chrome;BF24C900-46D5-4F95-9B7B-C36AA6B0ACC7')]
    

    More research lead me to biplist module. (you need to pip install biplist it)

    >>> import biplist
    >>> biplist.readPlistFromString(x.get('com.apple.metadata:kMDItemWhereFroms'))
    ['https://be-internet.bene-system.com//hp/pdfservice?pdf=KLWVWLG1445013390236BS169201',
     '']
    

    DONE!

    0 讨论(0)
提交回复
热议问题