python命令行参数中的多行脚本
我正在尝试从arch linux PKGBUILD脚本中调用python:python命令行参数中的多行脚本,python,Python,我正在尝试从arch linux PKGBUILD脚本中调用python: python -c "from module import func; func()" func引发异常,这是预期行为,但会导致脚本失败。 像这样捕获异常不起作用: python -c "from module import func; try: func(); except ValueError: pass" 似乎没有办法将try/except语句放在一行() 有没有其他方法可以忽略异常或python返回时出错的事
python -c "from module import func; func()"
func
引发异常,这是预期行为,但会导致脚本失败。
像这样捕获异常不起作用:
python -c "from module import func; try: func(); except ValueError: pass"
似乎没有办法将try/except语句放在一行()
有没有其他方法可以忽略异常或python返回时出错的事实?
最受欢迎的解决方案是不需要额外的脚本或其他文件:)shell中的字符串可以包含嵌入的换行符:
python -c 'from module import func
try:
func()
except ValueError:
pass
'
请注意,如果要运行的Python包含引号,这将带来一个挑战,这将需要一些扭曲以确保它们都正确转义。在这种情况下,here文档比-c
选项更合适(尽管如果要运行的代码需要从标准输入中读取,这也会带来问题)
python您还可以输入要交互执行的脚本,如下所示:
$ cat -- | python
<code here>
<code here>
<code here>
<press Ctrl-D>
$cat--| python
Python将运行您输入的内容,例如:
~$ cat -- | python
from module import func
try:
func()
except ValueError:
pass
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named module
~$cat--| python
从模块导入函数
尝试:
func()
除值错误外:
通过
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为module的模块
事实上,这是可行的。让我觉得有点傻。。。嗯+1:)这不是我需要的,但仍然很有趣。我已将示例更改为您的代码;也许这就是你需要的。猫是不必要的。您可以使用python@kojiro:true,但它并不短,因此反向逻辑也适用。在99.9%的情况下,这很重要。这不是关于try/except
,而是关于一般的多行;更正标题:)你当然是对的。谢谢你的编辑。
~$ cat -- | python
from module import func
try:
func()
except ValueError:
pass
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named module