Python: općenite usluge operacijskog sustava: baratanje imenom putanje
-
module os.path
(službena dokumentacija) pruža prenosiv način za baratanje imenom putanje- kao i kod modula
os
, prenosiv u terminima da radi na više različitih operacijskih sustava (operacijski sustavi slični Unixu i Windows) pa u dokumentaciji svake pojedine funkcije piše dostupnost
- kao i kod modula
-
os.path.abspath(path)
vraća apsolutnu putanju za danu relativnu ili apsolutnu putanjupath
os.path.basename(path)
vraća ime datoteke ili direktorija za danu relativnu ili apsolutnu putanjupath
os.path.isabs(path)
vraćaTrue
ako je putanja apsolutnaos.path.exists(path)
vraćaTrue
ako putanjapath
postojios.path.realpath(path)
vraća putanju do datoteke u kanonskom obliku: ako jepath
simbolička poveznica, slijedi tu simboličku poveznicu; ako je rezultat opet simbolička poveznica, slijedi je i tako redom dok ne dođe do odredišta koje nije simbolička poveznica
Zadatak
Stvorite u direktoriju u kojem ćete pokrenuti Python skriptu dvije simboličke poveznice: prva je imena lnkhosts
na datoteku /etc/hosts
, a druga je nema-dat
na /tmp/nepostojeca-datoteka
. U Python skripti prvo saznajte apsolutne putanje do stvorenih poveznica, a zatim provjerite postoje li vaše poveznice i postoje li datoteke na koje pokazuju.
os.path.getatime(path)
dohvaća zadnje vrijeme pristupa datoteci kao varijablu tipafloat
u kojoj je zapisan broj sekundi od epoheos.path.getmtime(path)
dohvaća zadnje vrijeme promjene datoteke kao varijablu tipafloat
u kojoj je zapisan broj sekundi od epoheos.path.getctime(path)
dohvaća zadnje vrijeme promjene metapodataka datoteke kao varijablu tipafloat
u kojoj je zapisan broj sekundi od epohe-
os.path.getsize(path)
dohvaća veličinu u bajtovima -
os.path.isfile(path)
vraćaTrue
ako jepath
putanja do obične datoteke ili simbolička poveznica na datoteku os.path.isdir(path)
vraćaTrue
ako jepath
putanja do direktorija ili simbolička poveznica na direktorijos.path.islink(path)
vraćaTrue
ako jepath
putanja simboličke poveznice
Zadatak
Saznajte posljednje vrijeme pristupa, vrijeme promjene metapodataka i veličinu datoteke /etc/hosts
, a zatim i simboličke poveznice lnkhosts
. Uvjerite se da se zaista radi o datoteci i simboličkoj poveznici.
os.path.expanduser(path)
zamjenjuje~
ili~guido
putanjom do korisničkog direktorija trenutnog korisnika, odnosno korisnikaguido
(ako taj korisnik postoji); npr.os.path.expanduser("~")
vratit će"/home/korisnik"
os.path.expandvars(path)
zamjenjuje varijablu ljuske njezinom vrijednošću; npr.os.path.expandvars("$HOME/Radna površina")
vratit će"/home/korisnik/Radna površina"
os.path.join(path, *paths)
spaja dijelove putanje razdjelnicima putanje odgovarajućim za operacijski sustav na kojem radi (/
na operacijskim sustavima sličnim Unixu,\
na Windowsima); npr.os.path.join("/home", "korisnik", "Radna površina")
vratit će"/home/korisnik/Radna površina"
os.path.split(path)
cijepa putanju u dva dijela, prvi je putanja do datoteke ili direktorija, a drugi je ime datoteke ili direktorija; npr.os.path.split("/home/korisnik/Radna površina")
vraća uređeni par("/home/korisnik", "Radna površina")
Author: Vedran Miletić