IPython - 系统命令
IPython - 系统 Shell 命令
Section titled “IPython - 系统 Shell 命令”IPython 提供了与底层操作系统 shell(如 bash、zsh 或 Windows 命令提示符)的无缝集成。这允许你直接在 IPython 会话中运行系统命令,而无需离开当前环境。
使用 ! 运行 Shell 命令
Section titled “使用 ! 运行 Shell 命令”要执行系统命令,只需在其前面加上一个感叹号 (!)。IPython 将在一个子 shell 中运行该命令,并将其标准输出(和标准错误)直接显示在你的会话中。
# 在 Linux/macOS 上:!pwd# 输出: (例如) /home/user/current_project
!ls -l *.py# 输出: (列出当前目录下的 Python 文件)
# 在 Windows 上:!cd# 输出: (例如) C:\Users\User\current_project
!dir *.txt# 输出: (列出当前目录下的文本文件)捕获命令输出
Section titled “捕获命令输出”你可以将 shell 命令的输出捕获到一个 Python 变量中。将命令(前面加上 !)赋值给一个变量名。
# 在 Linux/macOS 上files = !lsprint(files)# 输出: (例如) ['data.csv', 'notebook.ipynb', 'script.py']
# 在 Windows 上files = !dir /bprint(files)# 输出: (例如) ['data.csv', 'notebook.ipynb', 'script.py']输出通常被捕获为一个字符串列表(IPython 的 SList 类型,其行为类似于列表但有额外的方法),命令输出的每一行都成为列表中的一个元素。换行符通常会被移除。
将 Python 变量传递给 Shell 命令
Section titled “将 Python 变量传递给 Shell 命令”你可以使用花括号 {} 或在变量名前加上美元符号 $,将 Python 变量直接嵌入到你的 shell 命令中。
filename = 'my_data.txt'message = 'Processing complete.'
# 使用花括号!echo "Processing {filename}" > status.log
# 使用美元符号 (适用于简单的变量名)!echo $message >> status.log
# 验证文件内容 (Linux/macOS)!cat status.log# 输出:# Processing my_data.txt# Processing complete.这个强大的特性允许你根据 Python 程序的当前状态动态地构建 shell 命令,从而实现与系统的复杂交互。