[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