You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

传递含#的命令行参数时sys.argv无法获取参数的问题求助

解决Ubuntu下Python传递含#的命令行参数丢失问题

这是因为Linux Shell(比如Ubuntu默认的Bash)中,#是注释起始符号——shell解析命令时,会把#以及后面的所有内容都当成注释忽略掉,根本不会把这部分内容传给Python程序,所以sys.argv自然拿不到。

解决方法很简单,用以下两种方式处理含#的参数:

  • 用引号包裹参数:单引号或双引号都可以,让shell把整个参数当作普通字符串处理
    示例命令:

    python3 test.py 'hello#world'
    

    或者

    python3 test.py "hello#world"
    
  • 用反斜杠转义#:告诉shell这是普通字符,不是注释开头
    示例命令:

    python3 test.py hello\#world
    

验证一下,假设test.py的代码是:

import sys
print(sys.argv)

执行上述任意命令,输出都会包含完整的含#参数,比如:

['test.py', 'hello#world']

内容的提问来源于stack exchange,提问作者RandomUser12312233

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:35:38