【问题标题】:Python try...except from the command line [duplicate]Python尝试...除了命令行[重复]
【发布时间】:2020-04-27 16:57:12
【问题描述】:

如何在从 bash 调用的 Python 单行中使用 try...except

python3 -c "try: import foo\nexcept ModuleNotFoundError: print('no foo')"
  File "<string>", line 1
    try: import foo\nexcept ModuleNotFoundError: print('no foo')
                                                               ^
SyntaxError: unexpected character after line continuation character

【问题讨论】:

    标签: python python-3.x bash


    【解决方案1】:

    你可以这样做:

    $ python -c "
    > try:
    >     import foo
    > except ModuleNotFoundError:
    >     print('no foo')
    > "
    Traceback (most recent call last):
      File "<string>", line 4, in <module>
    NameError: name 'ModuleNotFoundError' is not defined
    

    您可能应该改用ImportError

    【讨论】:

    • 谢谢!原来我的问题是重复的。您的解决方案有效,但我最终使用 $'...\n...' 来解释换行符。另外,我使用的是 Python 3,这就是它引发 ModuleNotFoundError 的原因。抱歉,我的问题并不清楚。
    • @z0r 我回滚了您的编辑,因为它从根本上改变了代码。主要问题是ModuleNotFoundError 是在 Python 3 中定义的,因此它不会引发NameError。我通常会说发布您自己的答案,但该问题已作为重复关闭...
    • @wjandrea 非常感谢!
    猜你喜欢
    • 2012-09-02
    • 2013-04-25
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    相关资源
    最近更新 更多