【问题标题】:Python system argument reading '&'Python 系统参数读取 '&'
【发布时间】:2014-09-02 09:29:47
【问题描述】:

我想通过控制台将 url 传递给我的 python,然后执行相应的任务。许多链接在链接中包含字符“&”。 python 将其解释为结束论点,但这不是我想要的。这是代码示例

import sys

external_id = sys.argv[1].encode("utf-8")
print external_id

当我运行以下命令时:

python graph.py 2%60&7

我明白了:

2%60

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

【问题讨论】:

  • 在前面抛出一个转义字符,即。 \&
  • 看起来这不是 python 问题,而是终端问题。
  • 您可能错过了这样一个事实,即您的外壳在某处显示了一条小错误消息:bash: 7: command not found。这是一个很大的线索;)

标签: python bash shell command-line-arguments


【解决方案1】:

这不是 python,而是 bash。你需要逃避它:

python graph.py 2%60\&7

【讨论】:

    【解决方案2】:

    引用this answer:

    & 通知 shell 将命令置于后台。

    Python 永远不会接收到该字符,因为 shell 会处理它,因此这不是 Python 的问题。您还可以将2%60&7 用引号括起来以使其工作

    me@pc:~$ python3 script.py '2%60&7'
    b'2%60&7'
    

    有时逃避& 比这样做要困难得多。

    【讨论】:

      猜你喜欢
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多