How to handle ampersand as part a command line argument in python

这一生的挚爱 提交于 2019-11-28 08:26:08

问题


I have a program in python 2.7 which accepts command line parameters using argparse, however if I try to enter a string containing an ampersand I lose the characters after that ampersand.

For example:

I have a simple python program just to test the input of command line arguments and simply prints out what was entered for a single command line parameter.

Essentially: print args.where

When I run the program with an argument like this:

$ python args.py -a http://www.website.com?optionone=one&numbertwo=two

The only text printed to the screen is: http://www.website.com?optionone=one

I have similar results when using sys and printIng using Argv

How can I get the full string entered?


回答1:


This is a problem with your shell. Put the argument in quotes.




回答2:


You can escape the ampersand with a backslash:

$ python args.py -a http://www.website.com?optionone=one\&numbertwo=two


来源:https://stackoverflow.com/questions/25704618/how-to-handle-ampersand-as-part-a-command-line-argument-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!