Articles of subprocess

Windowssubprocess。打开一个没有shell = True的batch file

我有一个运行lessc的函数(使用npm install -g less ): >>> import subprocess >>> subprocess.Popen(['lessc']) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python27\lib\subprocess.py", line 679, in __init__ errread, errwrite) File "C:\Python27\lib\subprocess.py", line 896, in _execute_child startupinfo) WindowsError: [Error 2] The system cannot find the file specified 不幸的是,除非我添加shell=True ,否则不起作用: >>> subprocess.Popen(['lessc'], shell=True) <subprocess.Popen object at 0x01F619D0> […]

如何使一个可以注销,关机,并重新启动计算机的Python脚本?

背景 我目前正在教自己的python,我认为这将是一个非常酷的项目,有一个“控制中心”,我可以closures,重新启动,并注销我的电脑。 我也想使用subprocess模块,因为我听说导入OS模块已经过时了。 当前代码 def shutdown(self): import subprocess subprocess.call(["shutdown", "-f", "-s", "-t", "60"]) 题 我真正问的是,有没有办法(使用subprocess模块)注销并重新启动我的电脑? 技术规格 Python 2.7.3 Windows 7,32位

在python的另一个目录中运行batch file

我想运行位于MyFolder中与当前目录不同的mybat.bat文件。 我使用了下面的代码: subprocess.Popen(["mybat", MyArg], cwd=MyFolder, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) 但是,我得到以下错误: "WindowsError: [Error 2] The system cannot find the file specified" 我应该提到,如果我用PATH中的另一个程序(如notepadreplacemybat ,它的工作原理绝对没问题。

使用VLC的虚拟接口时如何防止显示控制台

我尝试从Node.js服务器脚本以“虚拟”模式启动VLC,但是使用child_process.spawn('vlc',['-I dummy'])会在使用Windows时为VLC的输出生成一个新的控制台窗口。 有没有办法来防止这种情况发生,并通过标准输出ReadableStream强制所有的标准输出,所以没有“popup窗口”发生? 编辑 :这个问题与node.js没有任何关系,只是我调用它的方式和VLC的行为。 解决scheme如下。 谢谢。

如何杀死一个由subprocess.check_output()创build的父子死亡的Pythonsubprocess?

我正在Linux机器上运行一个python脚本,它使用subprocess.check_output()创build一个subprocess,如下所示: subprocess.check_output(["ls", "-l"], stderr=subprocess.STDOUT) 问题是,即使父进程死亡,孩子仍然在运行。 父母死后有没有办法杀死孩子的过程?

如何使用python更改Windows的closures消息?

我有一个程序closures我的电脑,但我想改变显示的信息。 目前,它说我的电脑会在一分钟内closures, 这是在一个消息框。 有没有办法做到这一点? 另外,作为“额外信用”,我可以倒计时吗? (60秒,59秒,58秒…?) 我目前的关机代码是这样的: import subprocess subprocess.call(["shutdown", "-f", "-r", "-t", "10"]) 我希望消息被embedded到subprocess命令中。 眼镜: Python 2.7.3 Windows 7,32位

在没有shell窗口的情况下运行shell命令

使用subprocess.call或subprocess.Popen ,执行shell命令会使shell窗口快速出现并消失。 我如何在没有shell窗口的情况下运行shell命令?

Pythonsubprocess模块相当于在Windows中双击

我想使用subprocess模块打开一个文件,就像在资源pipe理器中双击该文件一样。 我怎么做? 我试了下面这行: subprocess.call("C:/myfile.csv", shell=True) 抛出一个错误说: 该命令的语法不正确。 “C:\”不被识别为内部或外部命令,可操作程序或batch file。 如何使用subprocess模拟双击? 基本上我想在Excel 2007中打开一个CSV文件。

在控制台上打印通过subprocess.check_output调用的可执行文件,但不返回结果

在Windows机器上,我试图从Python调用一个外部可执行文件并收集它的输出以进一步处理。 由于必须在调用可执行文件之前设置本地pathvariables,因此我创build了一个批处理脚本 首先调用另一个脚本来设置%PATH%和 然后使用给定的参数调用可执行文件。 * .bat文件如下所示: @echo off call set_path.bat @echo on executable.exe %* 和这样的Python代码: print("before call"); result = subprocess.check_output([batfile, parameters], stderr=subprocess.STDOUT, shell=True); print("after call"); print("——- ——- ——- printing result ——- ——- ——- "); print(result); print("——- ——- ——- /printing result ——- ——- ——- "); 现在,从技术上讲,这是有效的。 可执行文件被调用的目标参数,运行,完成并产生结果。 我知道这一点,因为他们被嘲笑地显示在Python脚本运行的控制台中。 但是,结果string只包含批处理脚本返回的内容,而不包含可执行文件输出: 打电话之前 你好? 是的,这是executable.exe 打完电话后 ——- ——- ——-打印结果——- […]

Windows上的Python 2.6:如何终止subprocess.Popen与“壳=真”参数?

有没有办法终止一个启动与“shell”参数设置为“True”的subprocess.Popen类的进程? 在下面的工作最小的例子中(使用wxPython),您可以愉快地打开和终止记事本进程,但是如果将Popen“shell”参数更改为“True”,则记事本进程不会终止。 import wx import threading import subprocess class MainWindow(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title) self.main_panel = wx.Panel(self, -1) self.border_sizer = wx.BoxSizer() self.process_button = wx.Button(self.main_panel, -1, "Start process", (50, 50)) self.process_button.Bind(wx.EVT_BUTTON, self.processButtonClick) self.border_sizer.Add(self.process_button) self.main_panel.SetSizerAndFit(self.border_sizer) self.Fit() self.Centre() self.Show(True) def processButtonClick(self, event): if self.process_button.GetLabel() == "Start process": self.process_button.SetLabel("End process") self.notepad = threading.Thread(target = […]