Python尝试…除了从命令行

Python尝试…除了从命令行,python,python-3.x,bash,Python,Python 3.x,Bash,如何在从bash调用的Python一行程序中使用try…除了 python3 -c "try: import foo\nexcept ModuleNotFoundError: print('no foo')" 文件“”,第1行 try:import foo\nexcept modulenofounderror:print('no foo') ^ SyntaxError:行连续字符后出现意外字符 您可以这样做: $ python -c " > try: > import fo

如何在从bash调用的Python一行程序中使用
try…除了

python3 -c "try: import foo\nexcept ModuleNotFoundError: print('no foo')"
文件“”,第1行
try:import foo\nexcept modulenofounderror:print('no foo')
^
SyntaxError:行连续字符后出现意外字符

您可以这样做:

$ 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
$python-c”
>尝试:
>进口食品
>除ModuleNotFoundError外:
>打印('no foo')
> "
回溯(最近一次呼叫最后一次):
文件“”,第4行,在
NameError:未定义名称“ModuleNotFoundError”

也许你应该改用importorror。

谢谢!原来我的问题是重复的。您的解决方案可行,但我最终使用了
$”…\n..
来解释换行符。另外,我正在使用Python 3,这就是为什么它会引发
ModuleNotFoundError
。抱歉,我的问题不清楚。@z0r我回滚了您的编辑,因为它从根本上改变了代码。主要的问题是,Python3中定义了
ModuleNotFoundError
,因此它不会引发
NameError
。我通常会说发布你自己的答案,但是这个问题已经作为副本关闭了…@wjandrea非常感谢!
$ 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