2012-10-31 11 views
5

Czy jest jakiś sposób, aby powiedzieć argparse, aby nie jeść cudzysłowów?Python argparse argument z cytatami

Na przykład, gdy podaję argument z cudzysłowami, argparse przyjmuje jako argument tylko to, co jest w cudzysłowach. Chcę uchwycić cudzysłów, jak również (bez konieczności ucieczki je w wierszu poleceń.)

pbsnodes -x | xmlparse -t "interactive-00" 

produkuje

interactive-00 

Chcę

"interactive-00" 

Odpowiedz

9

myślę, że jest to skorupa, która je, więc python nigdy ich nie zobaczy. Wywołanie ich z wiersza poleceń może być jedyną opcją.

Jeśli jest to styl \"backslash\" ucieczce nie podoba z jakiegoś powodu, to tak powinno działać zamiast:

pbsnodes -x | xmlparse -t '"interactive-00"' 
+2

To jest właśnie przypadek. Powłoka traktuje cytaty jako "weź wszystko, co tu jest, nawet jeśli zawiera spacje". I to robi. To właśnie cytuje * dla * w powłoce. – kindall

+0

Bummer. Ok dzięki. – denvaar

Powiązane problemy