首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Python | 常见场景】最佳实践系列 —— 各种场景及运用(适合下饭刷)

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

作者头像
计算机魔术师
发布于 2023-12-01 01:55:18
发布于 2023-12-01 01:55:18
34400
代码可运行
举报
文章被收录于专栏:计算机魔术师计算机魔术师
运行总次数:0
代码可运行

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

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

@toc

subprocess 模块

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import subprocess

result = subprocess.run(["ls", "-l"], capture_output=True, text=True)
print(result.stdout)
```

上述代码在Unix/Linux系统上运行`ls -l`命令,并将输出打印到标准输出。

与子进程交互: ``subprocess模块还允许您与子进程进行交互,发送输入并获取输出。您可以使用subprocess.Popen`类来创建子进程对象,并使用它的方法进行交互。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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子进程,向其发送一段代码,并获取其输出。

错误处理: ``subprocess模块还提供了处理子进程中的错误和异常的功能。您可以通过检查subprocess.CompletedProcess`对象的属性来获取命令的执行结果、返回码和输出。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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`异常,并打印出命令执行失败的信息。

其他功能: ``subprocess`模块还提供了其他一些功能,如控制子进程的输入、输出和错误流、设置超时、在后台运行进程等。您可以查阅官方文档以了解更多详细信息。

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

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

jupyter notebook 切换内核

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
source myenv/bin/activate

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
conda activate myenv

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install ipykernel

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
conda install ipykernel

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python -m ipykernel install --user --name=myenv --display-name "My Virtual Environment"

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jupyter notebook

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python Subprocess库详解
Subprocess库是Python中用于创建和管理子进程的标准库。它提供了一个强大而灵活的接口,使得你可以在Python中启动新的进程、连接它们的输入和输出,并与它们进行交互。本教程将介绍Subprocess库的基本概念、用法和一些常见的应用场景。
Michel_Rolle
2024/02/04
3.5K0
python subprocess模块
subprocess模块 允许你生成一个或多个进程,并且可以跟它交互,并且获取返回的结果,这个模块想要替换掉几个老的方法: os.system os.spawn* 所以以后跟系统交互的命令,尽量用subprocess 建议调用subprocess的run()方法去跟系统进行调用,更高级的方法,使用popen() ;run()方法其实就是封装的popen。 run()方法在python3.5才有,python2.x没有,2.x用subprocess.call
py3study
2020/01/07
1.2K0
python的subprocess模块
1 os与commands模块 ​ 2 subprocess模块 ​ 3 subprocess.Popen类
py3study
2020/01/07
3.3K0
Python调用外部命令:5种方法详解与实例 | Python系统编程指南
Python 3.5+ 引入了 subprocess.run(),这是目前执行外部命令的推荐方法。
用户11750067
2025/08/06
1160
记录Python 调用 subprocess.Popen 卡死解决办法
subprocess.Popen 是 Python 中用于执行外部命令或程序的模块之一。它提供了创建子进程并与之交互的灵活方式。以向 subprocess.Popen 传递一个命令字符串或命令列表,它将调用操作系统的 shell 来执行该命令。
用户4945346
2024/02/17
2.6K0
记录Python 调用 subprocess.Popen 卡死解决办法
subprocess:Python中创建子进程
subprocess库提供了一个API创建子进程并与之通信。这对于运行生产或消费文本的程序尤其有好处,因为这个API支持通过新进行的标准输入和输出通道来回传数据。
luckpunk
2023/09/29
9800
subprocess:Python中创建子进程
Python 执行系统命令
Python 编程过程中经常会用到系统命令,本文记录实现方法。 系统命令 作为胶水语言,Python可以很方便的执行系统命令,Python3中常用的执行操作系统命令有以下方式 os.system() os.popen() subprocess 模块 os.system 执行命令但无法获取取命令输出时,可以使用 os.system os.system() 是C语言 system() 函数的封装,返回命令的退出状态码,命令执行结果输出到标准输出(stdout/窗口)。 system函数可以将
为为为什么
2022/08/10
2K0
Python调用外部系统命令
利用Python调用外部系统命令的方法可以提高编码效率。调用外部系统命令完成后可以通过获取命令执行返回结果码、命令执行的输出结果进行进一步的处理。本文主要描述Python常见的调用外部系统命令的方法,包括os.system()、os.popen()、subprocess.Popen()等。
Python学习者
2023/07/04
6150
【module】subprocess
subprocess模块是python从2.4版本开始引入的模块。主要用来取代 一些旧的模块方法,如os.system、os.spawn、os.popen、commands.*等subprocess通过子进程来执行外部指令,并通过input/output/error管道,获取子进程的执行的返回信息。
py3study
2020/01/02
2.1K0
Python3 与 C# 并发编程之~ 进程篇中
接着上面继续拓展,补充说说获取函数返回值。 上面是通过成功后的回调函数来获取返回值,这次说说自带的方法:
逸鹏
2018/08/14
8620
Python3 与 C# 并发编程之~ 进程篇中
Python模块学习:subprocess模块详解
subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码。这个模块的目的在于替换几个旧的模块和方法,如:
Python学习者
2023/08/26
3.4K0
猫头虎分享疑难杂Bug:error: subprocess-exited-with-error 解决方案
error: subprocess-exited-with-error 是 Python 开发过程中常见的错误之一。本篇博客将详细介绍这一错误的成因、解决方法,以及常见的相关问题。通过清晰的代码案例和操作命令,帮助读者彻底掌握解决这一问题的技巧。
猫头虎
2024/08/09
2.9K0
Python模块之subprocess
一 简介 在使用Python 开发MySQL自动化相关的运维工具的时候,遇到一些有意思的问题,本文介绍Python的 subprocess 模块以及如何和MySQL交互具体操作,如启动 ,关闭 ,备份数据库。 二 基础知识 Python2.4引入subprocess模块来管理子进程,可以像Linux 系统中执行shell命令那样fork一个子进程执行外部的命令,并且可以连接子进程的output/input/error管道,获取命令执行的输出,错误信息,和执行成功与否的结果。 Subprocess 提供了三个函数以不同的方式创建子进程。他们分别是 2.1 subprocess.call() 父进程等待子进程完成,并且返回子进程执行的结果 0/1 其实现方式
用户1278550
2018/08/09
2.1K0
python模块--subprocess
subprocess模块                                                                                                                                      
py3study
2020/01/06
7800
python模块之subprocess模块级方法
参数:(*popenargs, input=None, capture_output=False, timeout=None, check=False, **kwargs)。除input, capture_output, timeout, check,其他参数与Popen构造器参数一致。
枇杷李子橙橘柚
2019/05/26
2.5K0
Python标准库06 子进程 (subprocess包)
这里的内容以Linux进程基础和Linux文本流为基础。subprocess包主要功能是执行外部的命令和程序。比如说,我需要使用wget下载文件。我在Python中调用wget程序。从这个意义上来说,subprocess的功能与shell类似。 subprocess以及常用的封装函数 当我们运行python的时候,我们都是在创建并运行一个进程。正如我们在Linux进程基础中介绍的那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在Python中,我们通过标准库中的subprocess
Vamei
2018/01/18
3.1K0
python 标准类库-并行执行之subprocess-子进程管理
以下函数是调用子进程的推荐方法,所有使用场景它们都能处理。也可用Popen以满足更高级的使用场景
授客
2019/09/11
4.6K0
python 标准类库-并行执行之subprocess-子进程管理
python—subprocess、gl
运行python的时候,我们都是在创建并运行一个进程。像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序。
py3study
2020/01/09
1.7K0
并行处理(二)、subprocess模块
subprocess模块是python从2.4版本开始引入的模块。主要用来取代 一些旧的模块方法,如os.system、os.spawn*、os.popen*、commands.*等。subprocess通过子进程来执行外部指令,并通过input/output/error管道,获取子进程的执行的返回信息。
狼啸风云
2023/10/07
5540
python进程模块
然后还有一个os.fork函数,可以调用系统api并且创建子进程。但是fork在Windows上并不存在,在Linux和Mac可以成功使用。因为手头没有Linux的机器,就没尝试这个。
灯珑LoGin
2022/10/31
3570
相关推荐
Python Subprocess库详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档