【Python | 常见场景】最佳实践系列 —— 各种场景及运用(适合下饭刷)

本文介绍了Python的subprocess模块,包括如何运行外部命令、与子进程交互、错误处理以及在JupyterNotebook中切换和管理虚拟环境内核的方法。

在这里插入图片描述

🤵‍♂️ 个人主页: @AI_magician
📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。
👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍
🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)

在这里插入图片描述

该文章收录专栏
[✨— 《深入解析机器学习:从原理到应用的全面指南》 —✨]

@toc

subprocess 模块

subprocess模块是Python标准库中用于创建和管理子进程的模块。它提供了一种执行外部命令、与其交互、获取输出等操作的方式。以下是subprocess模块的一些常用功能和用法:

  1. 运行外部命令:
    ``subprocess模块允许您在Python程序中执行外部命令。您可以使用subprocess.run()`函数来运行命令,并等待命令执行完成。例如:

    import subprocess
    
    result = subprocess.run(["ls", "-l"], capture_output=True, text=True)
    print(result.stdout)
    ```
    
    上述代码在Unix/Linux系统上运行`ls -l`命令,并将输出打印到标准输出。
    
  2. 与子进程交互:
    ``subprocess模块还允许您与子进程进行交互,发送输入并获取输出。您可以使用subprocess.Popen`类来创建子进程对象,并使用它的方法进行交互。例如:

    import subprocess
    
    process = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, text=True)
    process.stdin.write("print('Hello, subprocess!')\n")
    process.stdin.close()
    
    output = process.stdout.read()
    print(output)
    ```
    
    上述代码创建一个Python子进程,向其发送一段代码,并获取其输出。
    
  3. 错误处理:
    ``subprocess模块还提供了处理子进程中的错误和异常的功能。您可以通过检查subprocess.CompletedProcess`对象的属性来获取命令的执行结果、返回码和输出。例如:

    import subprocess
    
    try:
        result = subprocess.run(["command_not_exist"], capture_output=True, text=True)
        result.check_returncode()  # 检查返回码
    except subprocess.CalledProcessError as e:
        print(f"Command execution failed: {e}")
    ```
    
    上述代码捕获了`subprocess.CalledProcessError`异常,并打印出命令执行失败的信息。
    
  4. 其他功能:
    ``subprocess`模块还提供了其他一些功能,如控制子进程的输入、输出和错误流、设置超时、在后台运行进程等。您可以查阅官方文档以了解更多详细信息。

请注意,使用subprocess模块时需要小心处理输入和命令参数,以避免潜在的安全风险(如命令注入)。建议使用参数列表形式来传递命令和参数,而不是通过字符串拼接。

以上是subprocess模块的一些基本用法,它提供了执行外部命令和与子进程交互的功能。对于更复杂的用例,建议查阅官方文档以获取更多详细信息和示例。

jupyter notebook 切换内核

要在 Jupyter Notebook 中创建新文件时选择特定的虚拟环境内核,可以按照以下步骤进行操作:

步骤 1: 激活虚拟环境
在开始之前,确保已经激活了你想要在 Jupyter Notebook 中使用的虚拟环境。根据你使用的虚拟环境管理工具,执行相应的命令来激活虚拟环境。

对于 virtualenv,使用以下命令激活虚拟环境:

source myenv/bin/activate

对于 conda,使用以下命令激活虚拟环境:

conda activate myenv

步骤 2: 安装 ipykernel
确保你的虚拟环境处于激活状态后,安装 ipykernel 包。使用以下命令:

pip install ipykernel

或者,如果你使用的是 conda,则使用以下命令:

conda install ipykernel

步骤 3: 添加虚拟环境内核到 Jupyter
运行以下命令,将你的虚拟环境添加到 Jupyter Notebook 中:

python -m ipykernel install --user --name=myenv --display-name "My Virtual Environment"

确保将 myenv 替换为你的虚拟环境的名称,并将 "My Virtual Environment" 替换为你想要显示的内核名称。

步骤 4: 启动 Jupyter Notebook
现在,你可以启动 Jupyter Notebook。在终端中运行以下命令:

jupyter notebook

这将在浏览器中打开 Jupyter Notebook。在创建新 Notebook 之前,点击右上角的 “New” 按钮,在下拉菜单中你应该能够看到你之前添加的虚拟环境内核名称。选择它,然后将使用你的虚拟环境作为内核来创建新 Notebook。

这样,你就可以在 Jupyter Notebook 中选择你的虚拟环境内核来创建新文件了。

在这里插入图片描述

						  🤞到这里,如果还有什么疑问🤞
					🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
					 	 🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机魔术师

在校大二学生,请多多指教

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值