Sie möchten os.stat()
verwenden :
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)
Beispiel für die Verwendung zum Abrufen der Besitzer-UID:
from os import stat
stat(my_filename).st_uid
Beachten Sie jedoch, dass stat
gibt die Benutzer-ID-Nummer zurück (z. B. 0 für root), nicht den tatsächlichen Benutzernamen.
Es ist eine alte Frage, aber für diejenigen, die mit Python 3 nach einer einfacheren Lösung suchen.
Sie können auch Path
verwenden ab pathlib
Um dieses Problem zu lösen, rufen Sie Path
auf ist owner
und group
Methode wie folgt:
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}")
In diesem Fall könnte die Methode also wie folgt aussehen:
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()}"
Ich bin nicht wirklich ein Python-Typ, aber ich konnte das hier aufpeppen:
from os import stat
from pwd import getpwuid
def find_owner(filename):
return getpwuid(stat(filename).st_uid).pw_name
Ich bin vor Kurzem darüber gestolpert, als ich nach Besitzerbenutzern und Gruppen suchte Informationen, also dachte ich, ich würde teilen, was ich mir ausgedacht habe:
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
)