首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在使用subprocess.Popen的同时设置输出文件,同时隐藏命令窗口?

在使用subprocess.Popen时,可以通过设置参数来实现同时设置输出文件和隐藏命令窗口。

要设置输出文件,可以使用subprocess.Popen的stdout参数来指定输出文件的路径。stdout参数接受一个文件对象作为值,可以将命令的输出重定向到该文件中。例如,可以使用open函数创建一个文件对象,然后将其作为stdout参数的值传递给subprocess.Popen。

示例代码如下:

代码语言:txt
复制
import subprocess

# 创建输出文件对象
output_file = open('output.txt', 'w')

# 设置subprocess.Popen的参数
process = subprocess.Popen(['command', 'arg1', 'arg2'], stdout=output_file)

# 等待命令执行完成
process.wait()

# 关闭输出文件
output_file.close()

在上述示例中,我们创建了一个名为output.txt的文件对象,并将其作为stdout参数的值传递给subprocess.Popen。这样,命令的输出就会被重定向到output.txt文件中。

要隐藏命令窗口,可以使用subprocess.STARTUPINFO类来设置子进程的启动信息。通过设置STARTUPINFO的dwFlags属性为subprocess.STARTF_USESHOWWINDOW,以及wShowWindow属性为subprocess.SW_HIDE,可以实现隐藏命令窗口的效果。

示例代码如下:

代码语言:txt
复制
import subprocess

# 创建启动信息对象
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE

# 设置subprocess.Popen的参数
process = subprocess.Popen(['command', 'arg1', 'arg2'], startupinfo=startupinfo)

# 等待命令执行完成
process.wait()

在上述示例中,我们创建了一个subprocess.STARTUPINFO对象,并将其作为startupinfo参数的值传递给subprocess.Popen。通过设置dwFlags属性为subprocess.STARTF_USESHOWWINDOW,以及wShowWindow属性为subprocess.SW_HIDE,可以隐藏命令窗口。

综合以上两种设置,可以同时设置输出文件和隐藏命令窗口。示例代码如下:

代码语言:txt
复制
import subprocess

# 创建输出文件对象
output_file = open('output.txt', 'w')

# 创建启动信息对象
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE

# 设置subprocess.Popen的参数
process = subprocess.Popen(['command', 'arg1', 'arg2'], stdout=output_file, startupinfo=startupinfo)

# 等待命令执行完成
process.wait()

# 关闭输出文件
output_file.close()

在上述示例中,我们同时设置了输出文件和隐藏命令窗口。命令的输出会被重定向到output.txt文件中,并且命令窗口会被隐藏。

腾讯云相关产品推荐:无

参考链接:

  • subprocess官方文档:https://docs.python.org/3/library/subprocess.html
相关搜索:如何在输出数据到文件的同时抑制终端的输出?如何使用rsync的输出设置变量,同时保持格式如何在忽略格式设置的同时使用find如何在验证表单的同时将文件输出到视图?使用linux命令同时删除不同文件夹中的文件如何在stdout/stderr中显示命令的输出,同时将输出保存到Go中的变量中?在unix中,如何在排除时间戳(如[00:00:00] )的同时获得文件字数?无法同时使用mocha和mochawesome查看文件和控制台输出中的测试输出MacOS/OSX -如何在运行进程的同时运行终端命令并关闭窗口?如何在推送应用程序的同时使用sudo用户运行unix命令?如何在YAML文件的variable部分同时使用变量组和变量?如何在Airflow中的变量值中包含空格,同时通过命令行设置它?如何在量角器的onPrepare中同时使用函数和规范文件?Selenium + C# -如何在使用chrome.options的同时设置chrome驱动程序路径如何在usingaWizardNewFileCreationPage的同时结合使用BasicNewFileResourceWizard和初始文件上下文的文件扩展名?如何在使用Node.js授权和更改金额的同时,在条带中设置申请费用?如何在angular的一个HTML文件中同时使用这两个表元素?如何在linux命令中使用regex获得文件中唯一单词的输出?如何在windows命令提示符中执行批处理文件中的多个命令,同时保持命令提示符上下文打开?如何在C#中运行命令行应用程序并重定向/显示其标准输出,同时保留应用程序的颜色?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

pyinstaller打包成无控制台程序时运行出错(与popen冲突解决方法)

有时候我们需要在程序里执行一些cmd命令使用os或者其它模块中popen方法去执行 这个问题一般是程序内有输入导致,这个输入可以是input(),也可以是其它一些stdin操作(os.popen...实际上会造成输入请求) 本质上就是:使用-w参数(无控制台)打包时程序里不要请求输入 或者,你也可以不用-w参数,手动隐藏控制台!...注意,并不会把该目录做为可执行文件搜索目录,所以不要把程序文件所在目录设置为cwd。 如果env不是None,则子程序环境变量由env值来设置,而不是默认那样继承父进程环境变量。...这个简单封装,改成使用subprocess.popen,接着将subprocess.popen打开管道输入值(stdin)重定向,即可解决问题!...也可以将输出值(stdout)定向到文件输出,请看: with open('输出文件.txt' , 'w+', encoding='utf-8') as out_file: proc = subprocess.Popen

3.8K30

python之系统命令

用于执行复杂系统命令 参数: args:shell命令,可以是字符串或者序列类型(:list,元组) bufsize:指定缓冲。...(callable object),它将在子进程运行之前被调用 close_sfs:在windows平台下,如果close_fds被设置为True,则新创建子进程将不会继承父进程输入、输出、错误管道...所以不能将close_fds设置为True同时重定向子进程标准输入、输出与错误(stdin, stdout, stderr)。...()函数,用于设置子进程一些属性,:主窗口外观,进程优先级等等 import subprocess ret1 = subprocess.Popen(["mkdir","t1"]) ret2 =...subprocess.Popen("mkdir t2", shell=True) 终端输入命令分为两种: 输入即可得到输出:ifconfig 输入进行某环境,依赖再输入,:python import

1.1K40
  • python subprocess模块

    所以以后跟系统交互命令,尽量用subprocess 建议调用subprocessrun()方法去跟系统进行调用,更高级方法,使用popen() ;run()方法其实就是封装popen。...用于执行复杂系统命令 参数: args:shell命令,可以是字符串或者序列类型(:list,元组) bufsize:指定缓冲。...所以不能将close_fds设置为True同时重定向子进程标准输入、输出与错误(stdin, stdout, stderr)。...CreateProcess()函数,用于设置子进程一些属性,:主窗口外观,进程优先级等等 终端输入命令分为两种: 输入即可得到输出 ifocnfig 输入进行某环境,依赖某环境再输入...: python 需要交互命令示例: import subprocess obj = subprocess.Popen(["python"], stdin=subprocess.PIPE

    1K20

    python 实现dcmtk关联pacs功能 推送下拉影像

    192.168.10.19) port 被呼叫主机port,(105) -aet 设置呼叫(本机)AE标题,pacs给本机添加AE title,(zs-find-scu) -aec 设置称为对等方...(被呼叫主机) AE标题,pacs系统AE title,(ebm-pacs) -P 使用患者根信息模型(默认) -S 使用研究根信息模型 -k 指定检索条件(key=value) -od 指定输出目录...QueryRetrieveLevel 指定检索级别 -aem 设置移动目的地AE标题(movescu时使用),(zs-move-scu) +f 输入文件格式(默认单个dcm文件路径),推送影像时使用...文件,修改datas=[("本地资源路径","打包后生成临时资源目录")] 2.pyinstaller:-w 去除控制台,无法执行cmd命令: 解决方法一:设置subprocess.Popen.../bin) + dcmtk服务exe + dcmtk命令即可 使用subprocess.Popen(),使用subprocess.getoutput() 5.tkinter 组件切换电脑打开则组件布局位置不一致

    1.6K30

    Python调用外部系统命令

    subporcess模块可以调用外部系统命令来创建新子进程,同时可以连接到子进程nput/output/error管道上,并得到子进程返回值。...其他正数表示缓存使用大小,,负数-1表示使用系统默认缓存大小。stdin、stdout、stdout 分别表示标准输入、标准输出和标准错误。其值可以为PIPE、文件描述符和None等。...一般情况下我们通过args参数来设置所要运行程序。如果将参数shell设为 True,executable将指定程序使用shell。...,可以使用文件对象函数,read()。...对于复杂命令考虑使用subprocess.Popen()完成,如果仅是简单命令执行,可以使用os.system()完成,调用windows暂停程序命令os.system('pause')。

    26320

    pythonsubprocess模块

    shell: 如果shell为True,那么指定命令将通过shell执行。如果我们需要访问某些shell特性,管道、文件名通配符、环境变量扩展功能,这将是非常有用。...直接使用Popen会对如何运行命令以及如何处理其输入输出有更多控制。通过为stdin, stdout和stderr传递不同参数。...这个时候我们就需要使用到suprocessPopen()方法。该方法有以下参数: args:shell命令,可以是字符串,或者序列类型,list,tuple。...close_sfs:在Windows平台下,如果close_sfs被设置为True,则新创建子进程将不会继承父进程输入、输出、错误管道 所以不能将close_fds设置为True同时重定向子进程标准输入...下有效 将被传递给底层createprocess()函数,用于设置子进程一些属性, :主窗口外观,进程优先级等 subprocess实现sudo自动输入密码 ​ 例如Python里面执行sudo

    3K20

    Python调用linux系统命令--使

    在python 中调用系统命令,如果使用subprocess.Popen() 模块,按照命令参数形式,可以分两种: 把命令当作字符串传给subprocess.Popen()  把命令保存到一个元组,...如果args是一个元组或列表形式,序列第一个元素就是命令可执行文件。也可以使用executable 显式地指定可执行文件路径。 stdin, stdout, stderr :用于和外部进行通信。...: p = subprocess.Popen() 创建了子进程p 执行命令,外部需要给命令传入参数,则可以用p.communicate(stdin_some)方法,将stdin_some 传入p.stdin...命令,列出当前目录文件命令执行结果在标准输出stdout, 因为stdout 用PIPE 初始化了, 所以,在In [129] 行,用p.stdout.read() 将内容读出。    2....多条命令连通:      在linux 下,经常使用管道将多条命令连在一起,前一条指令执行结果作为后一条指令输入,使用Popen 也可以实现。 ? 首先,查看test.txt 文件内容。

    5.1K20

    Python全栈开发之常用模块

    输出用于分割文件路径字符串 win下为;,Linux下为: os.name 输出字符串指示当前使用平台。...用于执行复杂系统命令 args:shell命令,可以是字符串或者序列类型(:list,元组) bufsize:指定缓冲。...close_sfs:在windows平台下,如果close_fds被设置为True,则新创建子进程将不会继承父进程输入、输出、错误管道,所以不能将close_fds设置为True同时重定向子进程标准输入...()函数,用于设置子进程一些属性,:主窗口外观,进程优先级等等 import subprocess """ 终端输入命令分为两种: 输入即可得到输出:ifconfig 输入进行某环境,依赖再输入...,:python """ # 执行普通命令 ret1 = subprocess.Popen(["mkdir","t1"]) ret2 = subprocess.Popen("mkdir t2", shell

    96610

    Python 执行系统命令

    执行命令但无法获取取命令输出时,可以使用 os.system os.system() 是C语言 system() 函数封装,返回命令退出状态码,命令执行结果输出到标准输出(stdout/窗口...好处在于:运用对线程控制和监控,将返回结果赋于一变量,便于程序处理。 subprocess.Popen() 使用Popen可以创建进程,并与进程进行复杂交互。...用法: child = subprocess.Popen(["cmd","arg1"...]) 在一些复杂场景中,我们需要将一个进程执行输出作为另一个进程输入。...,NONE表示不进行重定向,继承父进程,PIPE表示创建管道 stdout 程序标准输出句柄,参数意义同上 stderr 程序标准错误句柄,参数意义同上,特殊,可以设置成STDOUT,表示与标准输出一致...当需要设置shell=True时(当False时,arges是列表,第一个参数是shell命令,后面的都是参数’,’ 隔开),须把args设为string,空格隔开,如下 >>> a = subprocess.Popen

    1.7K10

    Python模块之subprocess

    一 简介 在使用Python 开发MySQL自动化相关运维工具时候,遇到一些有意思问题,本文介绍Python subprocess 模块以及如何和MySQL交互具体操作,启动 ,关闭 ,备份数据库.../error管道,获取命令执行输出,错误信息,和执行成功与否结果。...PIPE 创建管道/文件对象/文件描述符(整数)/stderr 还可以设置为 STDOUT 后面会给出常见用法 shell 是否使用shell来执行程序。...那么坑爹问题来了:当你要使用Pythonsubprocess.Popen实现命令行之间管道传输,同时数据源又非常大(比如读取上GB文本或者无尽网络流)时,官方文档不建议用wait,同时communicate...是无任何返回输出,使用,child.communicate()或者读取stdout 则会持续等待。

    1.9K10

    使用 python 执行 shell 命令几种常用方式

    ,可以同时得到执行状态码和输出结果,可以说是同时具备了 os.system() 和 os.popen() 功能,实用性更强一些。...,第一个结果是状态码,第二个是输出结果字符串格式,所以如果想要在提取执行结果同时获取到执行成功与否,则可以直接使用这个方法。...,那必须将参数 shell 设置为 True,不然默认就是使用列表作为命令传入参数,比如看下面这种不设置 shell=True 和设置对比: >>> res1 = subprocess.call(...subprocess.Popen() 方法是我们项目代码中使用,这个方法同样是可以输出执行状态码和输出结果,但是参数比 commands 需要多。...我建议是当执行命令比较简单而且也不是经常调用时候,可以直接使用 os.system(),而如果是需要把执行命令方法写到函数中经常性调用,则应该使用 subprocess.Popen() 这种更加高级方法

    3.1K10

    python之路day5

    subprocess模块 铺垫: 1、os模块 os模块中system,使用os.system("dir")可直接输出结果,如果将os.system("dir")赋值给一个变量,则这个变量接收是这个命令执行成功与否...a=os.popen("dir").read()会保存命令输出结果,并赋值给a,此时print(a)就可以输出到屏幕 2、commands模块:只使用于linux 正题: subprocess.run(...bin/ls')接收字符串格式命令,返回元组形式,第1个元素是执行状态,第2个是命令结果即(0,'/bin/ls') 其它方法getoutput、check_output、check_call等不经常使用...例2:poll()和wait()方法 在例1中如果命令执行耗时很长,:res=subprocess.Popen("sleep 10;echo 'hello'",shell=Ture,stdout=subprocess.PIPE...可用参数: args:shell命令,可以是字符串或者序列类型 cwd:用于设置子进程的当前目录 stdin,stdout,stderr:分别表示程序标准输入、输出、错误句柄 env:用于指定子进程环境变量

    63010

    Python模块学习:subprocess模块详解

    命令,默认应该是一个字符串序列,‘df’, ‘-Th’或(‘df’, ‘-Th’),也可以是一个字符串,’df -Th’,但是此时需要把shell参数值置为True。...shell: 如果shell为True,那么指定命令将通过shell执行。如果我们需要访问某些shell特性,管道、文件名通配符、环境变量扩展功能,这将是非常有用。...run()函数默认不会捕获命令执行结果正常输出和错误输出,如果我们向获取这些内容需要传递subprocess.PIPE,然后可以通过返回CompletedProcess类实例stdout和stderr...universal_newlines: 该参数影响是输入与输出数据格式,比如它值默认为False,此时stdout和stderr输出是字节序列;当该参数设置为True时,stdout和stderr...startupinfo和creationflags: 这两个参数只在Windows下有效,它们将被传递给底层CreateProcess()函数,用于设置子进程一些属性,窗口外观,进程优先级等。

    57240

    python之调用系统命令

    os.system("ls") 仅仅在一个子终端运行系统命令, 而不能获取命令执行后返回信息 os.Popen 这种调用方式是通过管道方式来实现,函数返回一个file-like对象,里面的内容是脚本输出内容...参数stdin, stdout, stderr分别表示程序标准输入、输出、错误句柄。他们可以是PIPE,文件描述符或文件对象,也可以设置为None,表示从父进程继承。...我们不能将close_fds设置为True同时重定向子进程标准输入、输出与错误(stdin, stdout, stderr)。...参数startupinfo与createionflags只在windows下用效,它们将被传递给底层CreateProcess()函数,用 于设置子进程一些属性,:主窗口外观,进程优先级等等。...不管参数是一个路径还是文件 os.system() 函数用来运行shell命令 3.os进程 os模块包装了不同操作系统通用接口,使用户在不同操作系统下,可以使用相同函数接口,返回相同结构结果

    2.2K40

    Python 自动化指南(繁琐工作自动化)第二版:十七、计时、安排任务和启动程序

    如果您打开了一个应用多个实例,那么这些实例中每一个都是同一个程序独立进程。例如,如果您同时打开 Web 浏览器多个窗口,这些窗口每一个都是 Web 浏览器程序不同进程。...大多数具有图形用户界面(GUI)应用不像基于命令行或基于终端程序那样广泛使用命令行参数。但是大多数 GUI 应用会接受一个文件单个参数,应用在启动时会立即打开这个文件。...除了播放声音文件,你还可以在某个地方保存一个文本文件,上面写着“休息时间结束了!”并在倒计时结束时使用Popen()打开。这将有效地创建一个带有消息弹出窗口。...最后,您 Python 程序可以使用subprocess.Popen()函数启动其他应用。命令行参数可以传递给Popen()调用,以便用应用打开特定文档。...接下来,使用第 6 章中介绍pyperclip模块将文本输出复制到剪贴板,这样用户可以快速地将输出粘贴到文本文件或电子邮件中。

    2.7K20

    Python,Shell 和 三个标准文件

    场景 使用 Python 执行 Shell 命令(或者脚本),有两种执行场景: 等待,直到命令执行完毕,一次性获取返回结果,做一些你想做事情; 命令执行同时,实时获取命令持续输出,做一些你想做事情...例子 第一种场景:ls -a (list segment,Unix系统中使用非常频繁命令)用于列出所有文件文件列出之后就自动退出了。...标准错误输出文件(stderr) 后两个文件对应终端屏幕,进程从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。...False 时候,我们需要把命令按空格使用逗号分隔开来(即 list 数据结构)传给 cmd 参数(目的是让 Python 清楚这条命令所有细节),代码中例子就是使用这种;而 True 时候只需要把命令一股脑...如果我们执行 ping zhihu.com 等不会自己终止命令,这种方式会一直卡死,因为进程一直没有结束,文件也一直不会结尾。 那么类似这种持续输出结果命令如何执行呢?

    1.4K60

    Visual Studio 2008 每日提示(十七)

    the Visual Studio command line 操作步骤: 如何在不打开命令窗口时候,输入命令呢?...可以按Ctrl+/,光标就会定位到查找“下拉组合框”,同时在“下拉组合框”内会自动插入一个“>”符号,在“>”后面输入命令即可。...评论:这个功能很轻便,不需要打开命令窗口 #164、在解决方案里不使用其他工具窗口或对话框打开文件 原文链接:How to open a file in the solution without using...如果未选中,则所有有关配置管理项都会隐藏 1、在标准工具栏不可用。...评论:在vs2005如果选了true会导致IDE假死,在vs2008已经修复了,你可以放心设置为true #168、在生成时候不显示输出窗口 原文链接:How to stop the output

    1.3K80
    领券