[python] lstrip
Jan Martinek
honza na dp.fce.vutbr.cz
Pondělí Únor 19 14:00:01 CET 2007
Jan Martinek wrote:
> Hynek Beran wrote:
>> Ahoj,
>> mám script, který používá různé parametry.
>> např.
>>
>> pyBackup.py --cfg=celyVyvoj.cfg
>>
>> ve scriptu mám :
>> cfgFile = sys.argv[1].lstrip('--cfg=')
>>
>> očekával jsem, že mi takto napsaný řádek vrátí název souboru celyVyvoj.cfg .
>> Uřízne to --cfg=
>>
>> Ale ono mi to vrátí elyVyvoj.cfg (odmaže i c znázvu souboru). Když tam
>> zadám cokoli jiného do parametru , co nezačíná na c, tak to projde ...
>> Pochopil jsem špatně funkce ?
>>
>>
>> Díky za pomoc.
>>
>> --
>> Hynek BERAN
>>
>
> Je to tím, že parametrem metody lstrip je řetězec obsahující seznam
> znaků, které se mají uříznout. Např.
>
> >>> 'babalezekominem'.lstrip('ab')
> 'lezekominem'
>
> Doporučuji tuto cestu opustit a použít modul OptionParser. Umí zacházet
> s parametry, bere v úvahu jejich datové typy, je možné mu nastavit
> defaultní hodnoty, vypisuje help a další užitečné věci, které by jinak
> člověk musel dost složitě psát.
>
> Jan Martinek
Ještě doplním ukázku:
import sys
from optparse import OptionParser
usage = "usage: %prog [--cfg configfile]"
parser = OptionParser(usage, version="%prog version 0.1")
parser.add_option("-c", "--cfg", action = "store", type = "string",
default = 'celyVyvoj.cfg', dest='cfgFile', help='Configuration file')
(options, args) = parser.parse_args()
print options.cfgFile
Zkus to pustit s parametrem --help a uvidíš sám.
Jan Martinek
P.S. Ta konference je nějaká pomalá - napsal jsem svůj příspěvek a až
teprve potom se ukázalo, že jdu s křížkem po funuse ;-)
Další informace o konferenci Python