Quiere usar os.stat()
:
os.stat(path)
Perform the equivalent of a stat() system call on the given path.
(This function follows symlinks; to stat a symlink use lstat().)
The return value is an object whose attributes correspond to the
members of the stat structure, namely:
- st_mode - protection bits,
- st_ino - inode number,
- st_dev - device,
- st_nlink - number of hard links,
- st_uid - user id of owner,
- st_gid - group id of owner,
- st_size - size of file, in bytes,
- st_atime - time of most recent access,
- st_mtime - time of most recent content modification,
- st_ctime - platform dependent; time of most recent metadata
change on Unix, or the time of creation on Windows)
Ejemplo de uso para obtener el UID del propietario:
from os import stat
stat(my_filename).st_uid
Tenga en cuenta, sin embargo, que stat
devuelve el número de identificación del usuario (por ejemplo, 0 para raíz), no el nombre de usuario real.
Es una vieja pregunta, pero para aquellos que buscan una solución más simple con Python 3.
También puedes usar Path
de pathlib
para resolver este problema, llamando al Path
de owner
y group
método como este:
from pathlib import Path
path = Path("/path/to/your/file")
owner = path.owner()
group = path.group()
print(f"{path.name} is owned by {owner}:{group}")
Entonces, en este caso, el método podría ser el siguiente:
from typing import Union
from pathlib import Path
def find_owner(path: Union[str, Path]) -> str:
path = Path(path)
return f"{path.owner()}:{path.group()}"
Realmente no soy un tipo de pitón, pero pude preparar esto:
from os import stat
from pwd import getpwuid
def find_owner(filename):
return getpwuid(stat(filename).st_uid).pw_name
Me topé con esto recientemente, buscando obtener el usuario propietario y el grupo información, así que pensé en compartir lo que se me ocurrió:
import os
from pwd import getpwuid
from grp import getgrgid
def get_file_ownership(filename):
return (
getpwuid(os.stat(filename).st_uid).pw_name,
getgrgid(os.stat(filename).st_gid).gr_name
)