[python] Hledani v retezci
Petr Prikryl
PrikrylP na skil.cz
Čtvrtek Červenec 7 10:55:36 CEST 2005
Martin Jedlička...
> [...] Mam ulozenou v promenne cestu napr.
> /mnt/data/cvs/test/projekt a potreboval bych v teto promenne
> najit retezece, ktere jsou obsazeny mezi lomitky.
> Tedy projit ten retezec a vsechny retezce mezi lomitky
> ukladat do nejakeho pole i s poslednim retezcem. Jde mi
> zejmena o posledni retezec (napr. projekt) a predposledni
> (napr.test)
Zjevně jde o použití v unixovském systému. Pak lze použít
jinými doporučovanou metodu s.split('/'), kde s je reference
na uložený řetězec.
Doporučoval bych ale spíše využít funkcí pro práci s cestou,
které nejsou závislé na operačním systému, tedy modulu os.path.
Pak nebude záviset na tom, zda se v konkrétním systému používají
lomítka normální či obrácená. Doporučuji prostudovat následující
funkce z os.path:
abspath, normpath,
commonprefix,
split, dirname, basename,
join
Lze například psát
import os
s = '/mnt/data/cvs/test/projekt'
a pak
adr1 = os.path.basename(s) # projekt
adr2 = os.path.basename(os.path.dirname(s)) # test
nebo
t = os.path.split(s) # ('/mnt/data/cvs/test', 'projekt')
adr1 = t[1]
adr2 = os.path.basename(t[0])
Použití os.path se může ze začátku zdát těžkopádné,
ale často se to později vyplácí.
pepr
Další informace o konferenci Python