标签: subprocess

如何在 Python 中运行不可见的子进程?

我想知道是否可以以这样的方式运行 Python 应用程序子进程,以便在任务管理器中不会有重复的进程?

python subprocess process

1
推荐指数
1
解决办法
1795
查看次数

用子进程杀死python中的孩子的孩子

python 是否提供了一种方法来查找使用子进程生成的子进程的子进程,以便我可以正确地杀死它们?如果不是,有什么好的方法可以确保孩子的孩子被杀死?

python subprocess kill

1
推荐指数
1
解决办法
449
查看次数

无法在 subproces.call 中运行 ffmpeg

所以,我有一个简单的类,我试图将来自终端 ffmpeg 命令的字符串响应保存到对象属性中:

import os
import subprocess

class Movie(object):

    absolute_path = None
    movie_info = None

    def __init__(self, path):
        self.absolute_path = "%s/%s" % (os.getcwd(), path)
        if(os.path.exists(self.absolute_path) is False):
            raise IOError("File does not exist")

    def get_movie_info(self):
        ffmpeg_command = "ffmpeg -i %s" % self.absolute_path
        self.movie_info = subprocess.call(ffmpeg_command)
        print self.movie_info
Run Code Online (Sandbox Code Playgroud)

当我然后在 cmd 中运行此命令时:

import os
import sys
sys.path.append(os.getcwd())

from Encode.Movie import Movie

try:
    movie = Movie("tests/test_1.mpg")
    movie.get_movie_info()
except IOError as e:
    print e
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

richard@richard-desktop:~/projects/hello-python$ python main.py 
Traceback (most recent call last):
  File "main.py", …
Run Code Online (Sandbox Code Playgroud)

python subprocess ffmpeg

1
推荐指数
1
解决办法
2452
查看次数

如何在 Python 中用 subprocess.call 替换 os.system("mkdir " _testName) ?

如何在 Python 中替换os.system("mkdir " + _testName)with subprocess.call()

mkdir是我要运行的 unix 命令。_testName是在 python 脚本中定义的变量。

python subprocess os.system

1
推荐指数
1
解决办法
6495
查看次数

如何在 Python 中使用 cd 终端命令

如何使用cd和更改 raspberry pi 上的活动目录subprocess module

背景

因为我非常讨厌使用命令行,所以我正在尝试创建一个基本的 GUI 文本编辑器,它也可以编译我的程序。现在,我只是想将目录更改为Desktop. 为此,我正在使用该subprocess模块。这是我当前的代码:

from subprocess import *
call(["cd","Desktop"])
Run Code Online (Sandbox Code Playgroud)

在终端中,这一行 ( cd Desktop) 会将活动目录更改为Desktop. 奇怪的是,当我运行它subprocess时,出现以下错误:

OSError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

技术规格

树莓派 B 型

树莓派“Wheezy”操作系统

python linux subprocess cd raspberry-pi

1
推荐指数
1
解决办法
5550
查看次数

如何在python中打开mac osx上的文件

我正在尝试使用 eclipse 在 python 中打开 mac 上的文件。

FileName = "/Users/fis/Desktop/installation_guide.txt"
ss = subprocess.Popen(FileName, shell=True)
ss.communicate()
Run Code Online (Sandbox Code Playgroud)

还有os.popen(FileName)。但是文件没有打开。这些代码在 Windows 中运行良好。但是,我不知道mac有什么问题。我想打开一个文件,就像双击windows打开文件一样,而不是像在控制台中读取文件内容和打印一样。文件存在于 Mac 上的桌面位置

python macos subprocess popen

1
推荐指数
1
解决办法
2万
查看次数

python subprocess.call 输出不是交错的

我有一个运行其他 shell 脚本的 python (v3.3) 脚本。我的 python 脚本还打印诸如“关于运行脚本 X”和“完成运行脚本 X”之类的消息。

当我运行我的脚本时,我将 shell 脚本的所有输出与我的打印语句分开。我看到这样的事情:

All of script X's output
All of script Y's output
All of script Z's output
About to run script X
Done running script X
About to run script Y
Done running script Y
About to run script Z
Done running script Z
Run Code Online (Sandbox Code Playgroud)

我运行 shell 脚本的代码如下所示:

print( "running command: " + cmnd )
ret_code = subprocess.call( cmnd, shell=True )
print( "done running command")
Run Code Online (Sandbox Code Playgroud)

我写了一个基本的测试脚本,*没有*看到这种行为。这段代码符合我的期望:

print("calling")
ret_code …
Run Code Online (Sandbox Code Playgroud)

python subprocess

1
推荐指数
1
解决办法
758
查看次数

尝试后,sys.exit无法按预期工作:

我尝试了以下脚本.

我的初衷是如果成功执行以下代码段中的命令"command_a",则程序结束.否则,它会执行其他处理.

#!/usr/bin/python

import subprocess
try:
  command = "command_a"
  subprocess.check_call(command.split())
  print "Woks fine!, and stopping"
  sys.exit()


except:
  pass

print "Continue additional processing"
call_some_additional_processing()
Run Code Online (Sandbox Code Playgroud)

但是,我注意到这sys.exit()没有按预期工作.即使subprocess.check_call成功,它也会调用call_some_additional_processing().

你能告诉我原因是什么,解决这个问题的最佳方法是什么?

python subprocess exception-handling

1
推荐指数
1
解决办法
617
查看次数

如何在python中不使用"import"导入

这个问题的背景是我正在尝试编写一个程序来协助分析数据.它应该用python3编写,但是它的数据类型通常以python无法读取的格式存储.有一个包来读取这些数据,但它只与python2兼容.为了读取数据,我因此想要编写一个python2脚本来读取文件并将其转换为numpy数组.我想在我的python3程序中阅读.(有问题的包装是axographio 1).

一般来说,我想要的是:

给出一个(python2)脚本

#reading.py
import numpy
x = numpy.random.random(size=10000)
Run Code Online (Sandbox Code Playgroud)

运行一个可以某种方式得到x的(python3)

#analyze.py
import matplotlib.pyplot as plt
#fancyfunction that gets x from reading.py
plt.plot(x)
plt.show()
Run Code Online (Sandbox Code Playgroud)

这里重要的是read.py由python2解释器执行,因为它不能用于python3.

python subprocess module python-2.x python-3.x

1
推荐指数
1
解决办法
183
查看次数

Python subprocess.Popen不接受文本参数

根据subprocess.Popen的Python 3文档,类构造函数接受一个可选参数text(它应该控制文件对象stdin,stdout和stderr是否以文本模式打开).

但是,当我尝试设置对象的text=true构造时Popen,我得到错误

Failed: TypeError: __init__() got an unexpected keyword argument 'text'
Run Code Online (Sandbox Code Playgroud)

当我查看源代码(我使用的是Python 3.6.4)时,构造函数不带参数text.这里发生了什么?为什么文档说构造函数textsubprocess.py我的版本中没有可选参数?

python subprocess python-3.6

1
推荐指数
1
解决办法
511
查看次数