5

我在 python 中处理 2 个脚本。第一个需要向第二个脚本发送一个值或一个参数。现在的问题是,每当我将值发送到第二个脚本时,第二个脚本都无法获取我发送的所有参数。我发送的值是一个 URL,它包含一个 & 符号。我注意到它一直在降低 & 的第一次出现的值。

例如,让我们坐下,我需要通过这个:

http://www.google.com/jfljflfjej&12345

第二个脚本只会收到这个:

http://www.google.com/jfljflfjej

我需要做什么才能获得正确的值?还有哪些其他角色有与此相同的问题?

4

2 回答 2

6

您需要在整个值周围加上引号,包括 & 号,因为它是一个特殊的 shell 字符。或者,您可以通过在它前面放置一个反斜杠来逃避它:

http://www.google.com/jfljflfjej\&12345

& 符号向 shell 发出信号,您希望在后台模式下将命令置于该点。

以下任何字符在 shell 中都是特殊的

 \ ' " ` < > | ; <Space> <Tab> <Newline> ( ) [ ] ? # $ ^ & * =

这些需要以相同的方式进行转义;使用反斜杠或在值周围加上引号。

于 2012-09-21T06:28:32.810 回答
2

也许现在回答你有点晚了,但我遇到了同样的问题,我找到了一个简单的解决方案。

您可以使用函数 replace() 将每个 & 符号替换为 HTML '%26' 中的代码,如下所示。

url = http://www.google.com/jfljflfjej&12345
print url.replace('&', '%26')

结果:

http://www.google.com/jfljflfjej%2612345

这是编码的问题。

于 2014-04-08T14:09:11.447 回答