Python系统参数读取'&'

use*_*528 1 python bash shell command-line-arguments

我想通过控制台将url传递给我的python,然后执行相应的任务.许多链接在链接中包含字符"&".python解释说,结束论证然而这不是我想要的.这是代码示例

import sys

external_id = sys.argv[1].encode("utf-8")
print external_id
Run Code Online (Sandbox Code Playgroud)

当我运行以下内容时:

python graph.py 2%60&7
Run Code Online (Sandbox Code Playgroud)

我明白了:

2%60
Run Code Online (Sandbox Code Playgroud)

如何让python将'&'解释为url中的另一个字符?

Cam*_*arr 6

这不是python,它是bash.你需要逃脱它:

python graph.py 2%60\&7
Run Code Online (Sandbox Code Playgroud)


vau*_*tah 5

引用这个答案:

&通知壳把命令在后台运行.

Python从不接收该字符,因为shell会处理它,因此这不是Python的问题.您还可以2%60&7使用引号进行换行以使其正常工作

me@pc:~$ python3 script.py '2%60&7'
b'2%60&7'
Run Code Online (Sandbox Code Playgroud)

有时候逃避&比这更难.