运行与编辑 Python 脚本
IPython - 运行和编辑 Python 脚本
Section titled “IPython - 运行和编辑 Python 脚本”虽然 IPython 擅长交互式探索,但您通常需要运行存储在 .py 文件中的代码。IPython 提供了魔术命令来简化此工作流程。
使用 %run 运行脚本
Section titled “使用 %run 运行脚本”%run 魔术命令从当前 IPython 会话内部执行 Python 脚本。关键的是,脚本执行完成后,脚本中定义的任何变量、函数或类都将在您的交互式命名空间(namespace)中可用。
# Create a file named 'myscript.py' with the following content:# 创建一个名为 'myscript.py' 的文件,内容如下:# ```python# # myscript.py# message = "Hello from the script!"# def greet(name):# print(f"{message} Hello, {name}!")# ```
In [1]: %run myscript.py
In [2]: print(message)# Output: Hello from the script!# 输出:Hello from the script!
In [3]: greet("Alice")# Output: Hello from the script! Hello, Alice!# 输出:Hello from the script! Hello, Alice!注意:如果启用了 %automagic(通常是默认设置),您可能可以省略 % 而直接输入 run myscript.py。但是,明确使用 %run 更清晰。
您还可以使用 %run 将命令行参数传递给脚本:
# Modify 'myscript.py' to accept arguments:# 修改 'myscript.py' 以接受参数:# ```python# # myscript.py# import sys# name = sys.argv[1] if len(sys.argv) > 1 else 'World'# print(f"Hello, {name}!")# ```
In [4]: %run myscript.py Bob# Output: Hello, Bob!# 输出:Hello, Bob!
In [5]: %run myscript.py# Output: Hello, World!# 输出:Hello, World!使用 %edit 编辑脚本
Section titled “使用 %edit 编辑脚本”%edit 魔术命令会打开一个外部文本编辑器来修改文件。打开哪个编辑器取决于您的系统配置(通常由 EDITOR 环境变量决定)。
与文件名一起使用时(例如 %edit myscript.py),它会打开指定的文件。在您保存并关闭编辑器后,IPython 可以选择执行修改后的代码。
In [6]: %edit myscript.py# This will open myscript.py in your default editor (e.g., nano, vim, Notepad).# 这将在您的默认编辑器(例如,nano, vim, Notepad)中打开 myscript.py。# Make changes, save, and close the editor.# 进行更改,保存并关闭编辑器。# IPython might prompt: "Execute updated code? [Y/n]:"# IPython 可能会提示:“执行更新后的代码?[Y/n]:”# If you choose Y, the modified script runs.# 如果您选择 Y,修改后的脚本将运行。如果您在没有文件名的情况下使用 %edit,IPython 会创建一个临时文件,在编辑器中打开它,并在您关闭编辑器后执行该临时文件中的代码。输入的代码也会作为输出返回。
In [7]: %edit# Opens a temporary file in the editor.# 在编辑器中打开一个临时文件。# Enter: print("Code from temp file")# 输入:print("Code from temp file")# Save and close.# 保存并关闭。
# Output:# 输出:# Code from temp file# Code from temp file# Out[7]: 'print("Code from temp file")'虽然 %edit 在终端 IPython 会话中非常有用,但在 JupyterLab 或 Notebook 中工作时,直接在内置文本编辑器中编辑 .py 文件或使用 %%writefile 和 %load 等单元格魔术命令通常更方便。