【问题标题】:Why python does not recognize shell assignments with ! syntax为什么 python 不能识别带有 ! 的 shell 分配句法
【发布时间】:2019-12-18 14:28:12
【问题描述】:

Python、python2 或 python3,无论我使用哪一个,一个简单的 shall 命令(例如 cat、head)都不起作用。

>>> !cat testhts.txt
  File "<stdin>", line 1
    !cat testhts.txt
    ^
SyntaxError: invalid syntax

可能我错过了一些非常简单的东西,但我花了太多时间自己继续寻找。 提前感谢您的帮助。

【问题讨论】:

  • 是什么让您认为这会奏效?
  • 这只适用于 iPython (jupyter) 内核。
  • 为什么 python 会用 !句法? (或任何外壳语法/命令)
  • “可能我遗漏了一些非常简单的东西” => 的确如此:Python shell 只执行 Python 代码这一事实。
  • !-prefixed 命令是 iPython/jupyter 的功能,而不是 Python 语言。

标签: python shell


【解决方案1】:

如果你想在 python 中执行 shell 代码,你可以使用 subprocess 模块。

import subprocess
subprocess.call(' '.join(['cat','testhts.txt']),shell=True)

正如 Josef 所说,使用 !仅适用于 jupyter 笔记本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    相关资源
    最近更新 更多