【python子进程模块subprocess详解与应用实例 之三】教程文章相关的互联网学习教程文章

Python subprocess.call有效,但subprocess.check_call不起作用-有什么区别?【代码】

我正在使用Python 2.7 我正在尝试从Python运行StatTransfer程序. 当我尝试:tempname = os.path.abspath('./text.txt') TEMPFILE = open(tempname, 'wb') try:subprocess.check_call('ST convert.stc', shell = True, stdout = TEMPFILE, stderr = TEMPFILE) except:raise CritError(messages.crit_error_bad_command)它失败(CritError是用户定义的). 追溯不会告诉我任何有用的信息:Traceback (most recent call last):File "C:\....

python-使用subprocess.Popen无法在Web服务中打开pdf文件【代码】

我打开PDF文件有问题. (我在与Apache2一起使用的mod_wsgi下使用Ladon和Python.因此在ubuntu apache服务器系统上-切换到Windows系统) 我正在尝试运行以下Python脚本: (其中,str_pdf_file_name =’/var/www/Accounting_Engine/pdfDocuments/File_name.pdf’)def preview_pdf(self,str_pdf_file_name):try:if sys.version_info[:2] > (2,3):import subprocessfrom subprocess import Popen, PIPEk = subprocess.Popen(['evince', str...

python-如何为threading.Thread和multiprocessing.Pool指定本地工作目录?【代码】

就像subprocess.Popen(target =,cwd =)一样,它可以指定自己的本地工作目录.我不想每次都指定绝对路径,因为简单胜于复杂.os.chdir()根本不起作用,因为它设置了全局变量(对吗?).每当有多个线程时,os.chdir()都会失败.有什么建议么?谢谢! 我只是尝试jorgenkg的代码并进行了一些修改,您可能会明白为什么我要问这个问题.这是代码.import os import threading import timeclass child(threading.Thread):def run(self ):for i in rang...

Python:Multiprocessing Queue.put不适用于半大数据【代码】

我正在测试模块多处理中Queue结构的功能.我看不到为什么这段简单的代码无法为几乎不大的数据集终止 码:from multiprocessing import Process,Queueif __name__ == "__main__":tobeQueue = Queue()for i in range(1,10000):tobeQueue.put(i)此代码应该终止,适用于小于等于3的10的范围…但不适用于大于10的3的范围…解决方法:啊,我现在知道了问题所在.from Queue import Queue和from multiprocessing import Queue 不在同一队列中.多...

python-使用subprocess.Popen将输出从Mathematica脚本重定向到PIPE而不是stdout.【代码】

我有一个Mathematica脚本,可以将其作为bash可执行文件从Terminal运行.我想从Python内部运行它并得到结果.这是我想使用的代码:proc = subprocess.Popen(["./solve.m", Mrefnorm, Mvert, Mcomp, Mangle],stdout=subprocess.PIPE,stderr=subprocess.PIPE) result, err = proc.communicate()不幸的是结果是一个空字符串.但是,当我运行此代码时,结果将按预期输出到终端窗口:proc = subprocess.Popen(["./solve.m", Mrefnorm, Mvert, M...

python-Pyinstaller Django =没有名为’django.core.context_processors’的模块【代码】

我试图用pyinstaller打包django应用程序,并为此创建了这个pyinstaller规范文件:# -*- mode: python -*-block_cipher = Nonea = Analysis(['manage.py'],pathex=['/home/gero/PycharmProjects/gen-optimizer-precision'],binaries=None,datas=None,hiddenimports=[],hookspath=None,runtime_hooks=None,excludes=['matplotlib'],win_no_prefer_redirects=None,win_private_assemblies=None,cipher=block_cipher) pyz = PYZ(a.pure,...

python subprocess.call无法正确处理信号【代码】

(我正在使用Python 3.4.2)我有一个脚本test.py,它处理SIGTERM等.但是,当其他脚本调用它时,信号处理是不正确的. 这是test.py:#! /path/to/python3 import time import signal import sysdef handleSIG(signal, frame):for i in range(10):print(i)sys.exit()for sig in [signal.SIGTERM, signal.SIGINT, signal.SIGQUIT, signal.SIGHUP]:signal.signal(sig, handleSIG)time.sleep(30)如果我只是调用“ test.py”并执行“ Ctrl C”,...

在Python中,open(file).read()和subprocess([‘cat’,file])之间有什么区别,并且优先于另一个吗?【代码】

假设我要从/ proc / meminfo读取RAM使用情况.我可以想到两种基本方法. 使用shell命令output = subprocess.check_output('cat /proc/meminfo', shell=True) # or output = subprocess.check_output(['cat', '/proc/meminfo']) lines = output.splitlines()使用open()with open('/proc/meminfo') as meminfo:output = meminfo.read() lines = output.splitlines()我的问题是两种方法有什么区别?有明显的性能差异吗?我的假设是使用o...

python-multiprocessing.Pool.apply和multiprocessing.Pool.apply_async的目的【代码】

请参见下面的示例和执行结果:#!/usr/bin/env python3.4 from multiprocessing import Pool import time import osdef initializer():print("In initializer pid is {} ppid is {}".format(os.getpid(),os.getppid()))def f(x):print("In f pid is {} ppid is {}".format(os.getpid(),os.getppid()))return x*xif __name__ == '__main__':print("In main pid is {} ppid is {}".format(os.getpid(), os.getppid()))with Pool(proce...

python-通过subprocess.check_output调用的可执行文件在控制台上打印,但未返回结果【代码】

在Windows计算机上,我试图从Python调用外部可执行文件并收集其输出以进行进一步处理.因为必须在调用可执行文件之前设置本地路径变量,所以我创建了一个批处理脚本,该脚本 >首先调用另一个脚本来设置%PATH%和>然后使用指定的参数调用可执行文件. * .bat文件如下所示:@echo off call set_path.bat @echo on executable.exe %*像这样的Python代码:print("before call"); result = subprocess.check_output([batfile, parameters], ...

python-subprocess.call与os.system有何不同【代码】

我有一个python脚本可以为我安装/卸载一些常用的程序,并且在卸载后还可以进行一些快捷方式/文件夹清理.我曾经使用此代码删除文件夹os.system('rd /S /Q "{0}\\{1}"'.format(dirname, name))效果很好.我试图将os.system的用法转换为subprocess.call,所以我将上面的行更改为此subprocess.call(['rd', '/S', '/Q', '{0}\\{1}'.format(dirname, name)])但这给出了错误The system cannot find the file specified (2)我必须使用了不正确...

Python subprocess.call不等待命令执行【代码】

我是python的新手,我需要在课程中使用它进行作业.我在Freemat / octave / matlab .m文件中开发了解决方案(优化算法),并希望从Python调用它(python代码将由分级python脚本调用). .m文件读取一个名为tmp.data的文件,并将输出写入output.txt.然后,python脚本应从该输出中读取并将其转换为分级脚本期望的结果. 一切运行正常,除非我无法让Python等待对Matlab的调用完成,因此在以下几行上会产生错误. 这是代码:#!/usr/bin/python # -*- ...

python-循环中只有第一个subprocess.Popen(…,stdin = f)可以正常工作【代码】

我的主要目标是获取与Linux连接的计算机列表的所有cpu费用.我一直在网上挣扎和搜索一段时间,但由于找不到答案,我必须错过一些事情.所以我定义了一个cpu_script.py:import psutilprint(psutil.cpu_percent(interval=1,percpu=True))将在我的主脚本(位于同一文件夹中)中调用:import subprocess import os import numpy as np import psutilusr = "AA" computer = ["c1", "c2", "c3"] #list of computer which cpu load is to be te...

python-通过boto和multiprocessing.Sool从S3下载文件的性能不可靠【代码】

我想从S3下载数千个文件.为了加快过程,我尝试了Python的multiprocessing.Pool,但是我的性能非常不可靠.有时它可以工作,并且比单核版本快得多,但是通常某些文件要花费几秒钟,因此多处理运行所花的时间比单进程要长.有几次我什至得到ssl.SSLError:读取操作超时. 可能是什么原因呢?from time import time from boto.s3.connection import S3Connection from boto.s3.key import Key from multiprocessing import Pool import pickle...

python multiprocess无法启动【代码】

这是我在python中进行简单多处理任务的代码from multiprocessing import Processdef myfunc(num):tmp = num * numprint 'squared O/P will be ', tmpreturn(tmp)a = [ i**3 for i in range(5)] ## just defining a listtask = [Process(target = myfunc, args = (i,)) for i in a] ## creating processesfor each in task : each.start() # starting processes <------ problem linefor each in task : each.join() # waiting ...