8

In Python, is it possible to add custom property/metadata to a file? For example, I need to add "FileInfo" as a new property of the file. I need a method that works on various file formats

CherryBelle
  • 1,302
  • 7
  • 26
  • 46

1 Answers1

10

Heads up: this answer only works on Linux

You can make use of extended file attributes which is a filesystem feature that do just what you want: store custom metadata along files.

In Python, this is implemented by the os module through setxattr() and getxattr() functions.

import os

os.setxattr('foo.txt', 'user.bar', b'baz')
os.getxattr('foo.txt', 'user.bar')  # => b'baz'

Note that you must prepend the xattr value with "user." otherwise this may raise an OSError.

technoplato
  • 3,293
  • 21
  • 33
Delgan
  • 18,571
  • 11
  • 90
  • 141