python控制台输入字符串作为参数_Python-如何将字符串传递到subprocess.Popen(使用stdin参数)?...
小编典典
Popen.communicate() 说明文件:
请注意,如果要将数据发送到进程的stdin,则需要使用stdin = PIPE创建Popen对象。同样,要在结果元组中获得除None以外的任何内容,你还需要提供stdout = PIPE和/或stderr = PIPE。
替换os.popen *
pipe = os.popen(cmd, 'w', bufsize)
# ==>
pipe = Popen(cmd, shell=True, bufsize=bufsize, stdin=PIPE).stdin
警告使用communication()而不是stdin.write(),stdout.read()或stderr.read()来避免死锁,因为任何其他OS管道缓冲区填满并阻塞了子进程。
因此,你的示例可以编写如下:
from subprocess import Popen, PIPE, STDOUT
p = Popen(['grep', 'f'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
grep_stdout = p.communicate(input=b'one\ntwo\nthree\nfour\nfive\nsix\n')[0]
print(grep_stdout.decode())
# -> four
# -> five
# ->
在当前的Python 3版本中,你可以使用subprocess.run,将输入作为字符串传递给外部命令并获取其退出状态,并在一次调用中将输出作为字符串返回:
#!/usr/bin/env python3
from subprocess import run, PIPE
p = run(['grep', 'f'], stdout=PIPE,
input='one\ntwo\nthree\nfour\nfive\nsix\n', encoding='ascii')
print(p.returncode)
# -> 0
print(p.stdout)
# -> four
# -> five
# ->
2020-02-12
python控制台输入字符串作为参数_Python-如何将字符串传递到subprocess.Popen(使用stdin参数)?...相关推荐
- python popen 参数_Python – 如何传递一个字符串到subprocess.Popen(使用stdin参数)?
如果我做以下: import subprocess from cStringIO import StringIO subprocess.Popen(['grep','f'],stdout=subpro ...
- python对输入的字符串进行解析_python数据类型_字符串常用操作(详解)
这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...
- python循环输入姓名并打印_python基础循环的学习记录
一.while循环 如果条件成立(true),重复执行相同操作,条件不符合,跳出循环 while 循环条件: 循环操作 (1)while循环示例 例:输入王晓明5门课程的考试成绩,计算平均成绩i=1 ...
- python函数定义和其四种参数_python入门第九课:函数的定义及多种参数传递方式...
本教程使用的课本是<Python编程:从入门到实践>,作者:[美] Eric Matthes 本节介绍Python中的函数,函数是可以反复使用的一段代码,有了函数能大大简化编程工作量,还能 ...
- python字符串设置字体_python怎么更改字符串后几位
python更改字符串后几位的方法:可以利用replace()函数来实现.replace()函数可以把字符串中的旧字符串替换成新字符串,并返回替换后的新字符串.具体使用方法如:[str.replace ...
- python中对字符串进行编码_Python 中的字符串编码
对Python字符编码一直没搞明白,今天看<Python参考手册>再次遇到这个问题,重新整理下 Python中字符串字面量用于指定一个字符序列,其定义方法是把文本放入单引号('),双引号( ...
- python获取字符串首字母_Python学习之字符串方法总结
1.首字母大写 1 test = "abcdef" 2 v = test.capitalize() 3 print(v) 2.所有字母变小写,lower()只能对ASCII 也就是 ...
- python不支持单字符类型_Python数据类型之字符串
1. Python字符串的创建 字符串是Python中最常见的数据类型,通常使用单引号或双引号来定义一个字符串,如下: str = "我是字符串" str1 = '我也是字符串' ...
- python 字符串提取操作_python 中对字符串的操作
一: 字符串基础介绍 python中定义的字符串是个常量,一旦定义后只能使用.不能修改 1.字符串的定义: s = ' aaaa' s = "bbbb " s = "&q ...
- python中如何修改字符串的值_python中修改字符串的5种方法!
# str只读,那么可使用以下的方法修改 # 修改字符串常见的有五种你只要掌握一种既可 # 1.第一种是'替换法' str4 = "嘿爱多" # 字符串的元素不能修改 # str4 ...
最新文章
- 为什么新来的技术很难接手维护一个系统
- 打开word或者office程序报错:Microsoft Visual C++ Runtime Library. Runtime Error!
- 记一次错误的伪静态配置文件
- NYOJ练习题 又见Alice and Bob
- html动画效果结束返回,javascript判断css3动画结束 css3动画结束的回调函数
- 易语言 java支持_开源Java客户端可以连接易语言服务器
- Mac硬件温度管理软件TG Pro
- 计算机网络苏州大学题库,苏州大学计算机网络样卷B[计科大类].doc
- Base16,Base32,Base64编码的介绍
- JVM虚拟机基础知识(JVM位置、类加载生命周期、堆、元空间、jvm常用参数)
- 使用Django创建一份在线简历
- AI 边缘计算平台 - BeagleBone AI 64 简介
- cg of spears storm_Steam 上的 Storm Of Spears RPG
- 什么是嵌入式?嵌入式的应用
- Cisco 642-655 考试权威题库免费下载
- 官宣了!大杀四方的 Master 就是阿尔法狗
- 在网页中预览excel表格文件
- Broadcast 广播-(18)
- 【pytest】使用 mark 标记及运行测试用例,注册、管理 mark 标记
- 用PWM实现DAC功能
热门文章
- java实现2-3树_2-3-4树的分裂核心代码【JAVA实现】 | 学步园
- docker nacos mysql nginx 集群一台
- Centos7 安装Rabbitmq-server和Erlang 仓库汇总
- 3行代码实现ftp 上传、下载、删除操作集合
- 运行Jenkins部署任务
- 设置网页文字禁止复制
- php找不到phpmyadmin,phpMyAdmin 安装配置方法和问题解决
- js如何监听元素事件是否被移除_JS移除事件监听的方法 .removeEventListener( )
- android地图方位角_Android获取经纬度、计算距离、方位角
- 计算机房地板厚度,机房防静电地板 架空地板的技术参数与地板规格种类