Fórum Root.cz
		Hlavní témata => Vývoj => Téma založeno: cinnamon  30. 09. 2018, 10:05:11
		
			
			- 
				Nemá někdo zkušenosti s knihovnout argparse? Potřeboval bych procházet všechny parametry (a jejich hodnoty) předané při volání skriptu, aniž by se musely před parsováním definovat pomocí add_argument.
			
- 
				nargs=argparse.REMAINDER by mohlo pomoci, viz https://docs.python.org/3/library/argparse.html#nargs (https://docs.python.org/3/library/argparse.html#nargs)
 python -c 'import argparse; parser = argparse.ArgumentParser(); parser.add_argument(\'args\', nargs=argparse.REMAINDER); print(parser.parse_args())' 1 -help 1 --as  3
 
Namespace(args=['1', '-help', '1', '--as', '3'])
- 
				nargs=argparse.REMAINDER by mohlo pomoci, viz https://docs.python.org/3/library/argparse.html#nargs (https://docs.python.org/3/library/argparse.html#nargs)
 python -c 'import argparse; parser = argparse.ArgumentParser(); parser.add_argument(\'args\', nargs=argparse.REMAINDER); print(parser.parse_args())' 1 -help 1 --as  3
 
Namespace(args=['1', '-help', '1', '--as', '3'])
 
 Jak jsi to napsal, tak to samozřejmě funguje, ale když zadám parametr ve tvaru
 --test-directory=$HOME/testtak parsování skončí chybou unrecognized arguments
- 
				Tak nakonec jsem naznal, že pro moje účely je argparse kanónem na vrabce, sprostě projdu sys.argv[1:] a položky rozparsuju pomocí item.partition('=').
			
- 
				Případně co modul getopt https://docs.python.org/3.7/library/getopt.html ?
			
- 
				A co zkusit @click? Asi to úplně neodpovídá na dotaz... ale co kkdyby náhodou.
 Video z LinuxDays o @click https://www.youtube.com/watch?v=kRY2UGhjRb0
- 
				Chci pouzit argparse, ale nechce se mi ho konfigurovat. Asi tak nejak zni dotaz. 
			
- 
				Chci pouzit argparse, ale nechce se mi ho konfigurovat. Asi tak nejak zni dotaz.
 
 
 Spis mi prijde, ze ho chce pouzit zpusobem, jakym nebyl zamyslen pouzivat (tj. a la **kwArgs).
- 
				Chci pouzit argparse, ale nechce se mi ho konfigurovat. Asi tak nejak zni dotaz.
 
 
 Spis mi prijde, ze ho chce pouzit zpusobem, jakym nebyl zamyslen pouzivat (tj. a la **kwArgs).
 
 
 Přesně tak, argparse dělá trochu něco jiného, než jsem potřeboval.
- 
				Chci pouzit argparse, ale nechce se mi ho konfigurovat. Asi tak nejak zni dotaz.
 
 
 Spis mi prijde, ze ho chce pouzit zpusobem, jakym nebyl zamyslen pouzivat (tj. a la **kwArgs).
 
 
 Přesně tak, argparse dělá trochu něco jiného, než jsem potřeboval.
 
 
 Pak bych neztracel cas argparse, sel by pouzit click nebo si to proste oprogramovat
- 
				Pak bych neztracel cas argparse, sel by pouzit click nebo si to proste oprogramovat
 
 
 click vznikl před argparse, v pythonu 3 ho není důvod ho používat.
- 
				asi chcete použít metodu parse_known_args
 
 >>> import argparse
 >>> parser = argparse.ArgumentParser()
 >>> parser.add_argument('--foo')
 >>> args, unknown = parser.parse_known_args(['--foo', 'foo', '--unknown1', 'unknow1'])
 >>> args
 Namespace(foo='foo')
 >>> unknown
 ['--unknown1', 'unknow1']