当前位置: 首页>>代码示例>>Python>>正文


Python Process.communicate方法代码示例

本文整理汇总了Python中multiprocessing.Process.communicate方法的典型用法代码示例。如果您正苦于以下问题:Python Process.communicate方法的具体用法?Python Process.communicate怎么用?Python Process.communicate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在multiprocessing.Process的用法示例。


在下文中一共展示了Process.communicate方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Popen

# 需要导入模块: from multiprocessing import Process [as 别名]
# 或者: from multiprocessing.Process import communicate [as 别名]
concat_files_4 = "cat window_*_montage_4.txt > " + name[-1] + "_4.txt"
concat_files_5 = "cat window_*_montage_5.txt > " + name[-1] + "_5.txt"
concat_files_6 = "cat window_*_montage_6.txt > " + name[-1] + "_6.txt"
concat_files_7 = "cat window_*_montage_7.txt > " + name[-1] + "_7.txt"
concat_files_8 = "cat window_*_montage_8.txt > " + name[-1] + "_8.txt"
concat_files_9 = "cat window_*_montage_9.txt > " + name[-1] + "_9.txt"
concat_files_10 = "cat window_*_montage_10.txt > " + name[-1] + "_10.txt"
concat_files_11 = "cat window_*_montage_11.txt > " + name[-1] + "_11.txt"

concat_files_seiz = "cat window_*_seizure_results.txt > " + name[-1] + "_seiz.txt"

d = "/home/pi/algorithm/UI/data"

p1 = Popen(["ls", "-tr"], cwd=d,stdout=PIPE)
p2 = Popen(concat_files_0 ,shell=True, cwd = d, stdin=p1.stdout,stdout=PIPE)
p2.communicate()[0]

p2 = Popen(concat_files_1 ,shell=True, cwd = d, stdin=p1.stdout,stdout=PIPE)
p2.communicate()[0]

p2 = Popen(concat_files_2 ,shell=True, cwd = d, stdin=p1.stdout,stdout=PIPE)
p2.communicate()[0]

p2 = Popen(concat_files_3 ,shell=True, cwd = d, stdin=p1.stdout,stdout=PIPE)
p2.communicate()[0]

p2 = Popen(concat_files_4 ,shell=True, cwd = d, stdin=p1.stdout,stdout=PIPE)
p2.communicate()[0]

p2 = Popen(concat_files_5 ,shell=True, cwd = d, stdin=p1.stdout,stdout=PIPE)
p2.communicate()[0]
开发者ID:neuronates,项目名称:NeuroNatesFinal2016,代码行数:33,代码来源:capture-file.py

示例2: print

# 需要导入模块: from multiprocessing import Process [as 别名]
# 或者: from multiprocessing.Process import communicate [as 别名]
if __name__=='__main__':
    print('Parent process %s.' % os.getpid())
    p = Pool(4)
    for i in range(5):
        p.apply_async(long_time_task, args=(i,))
    print('Waiting for all subprocesses done...')
    p.close()
    p.join()
    print('All subprocesses done.')
"""对Pool对象调用join()方法会等待所有子进程执行完毕,调用join()之前必须先调用close(),调用close()之后就不能继续添加新的Process了。
请注意输出的结果,task 0,1,2,3是立刻执行的,而task 4要等待前面某个task完成后才执行,这是因为Pool的默认大小在我的电脑上是4,因此,最多同时执行4个进程。这是Pool有意设计的限制,并不是操作系统的限制。如果改成:
p = Pool(5)
就可以同时跑5个进程。
由于Pool的默认大小是CPU的核数,如果你不幸拥有8核CPU,你要提交至少9个子进程才能看到上面的等待效果。"""

#子进程
"""很多时候,子进程并不是自身,而是一个外部进程。我们创建了子进程后,还需要控制子进程的输入和输出。
subprocess模块可以让我们启动一个子进程,然后控制其输入和输出
下面的例子演示了如何在Python代码中运行命令nslookup www.python.org,这和命令行直接运行的效果是一样的:"""
import subprocess
print('$ nslookup www.python.org')
r = subprocess.call(['nslookup','www.python.org'])
print('Exit code:',r)
"""如果子进程还需要输入,则可以通过communicate()方法输入:"""
import subprocess
print('$ nslookup')
p = subprocess.Popen(['nslookup'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, err = p.communicate(b'set q=mx\npython.org\nexit\n')
print(output.decode('utf-8'))
print('Exit code:', p.returncode)
开发者ID:lxw15337674,项目名称:Language_learning,代码行数:32,代码来源:mulpro.py

示例3: print

# 需要导入模块: from multiprocessing import Process [as 别名]
# 或者: from multiprocessing.Process import communicate [as 别名]
print('fork: \nProcess (%s) start...' % os.getpid())
pid = os.fork()  # fork 轻松创建子进程
if pid == 0:  # 子进程返回 0, 父进程返回子进程的 id, getppid() 得到父进程 pid
    print('I am child process (%s) and my parent is (%s).' % (os.getpid(), os.getppid()))
    exit(0)  # 子进程执行打这里就退出, 不执行后面的
else: print('I (%s) just created a child process (%s).' % (os.getpid(), pid))

##################################################################
## multiprocessing Process
from multiprocessing import Process # fork 无法在 Windows 上运行, Process 可以跨平台
def run_proc(name): print('Run child process %s (%s)...' % (name, os.getpid()))  # 子进程要执行的代码
print('\nProcess: \nParent process (%s).' % os.getpid())
p = Process(target=run_proc, args=('test',))  # 参数在 args 中传
p.start()  # start() 方法启动, 这样创建进程比 fork() 还要简单
p.join()  # join() 方法可以等待子进程结束后再继续往下运行, 通常用于进程间的同步

##################################################################
## subprocess
import subprocess  # 启动一个子进程, 然后控制其输入和输出
print('\nsubprocess 没有控制输入输出: \n$ nslookup www.python.org')  # 不用控制的
r = subprocess.call(['nslookup', 'www.python.org']); print('Exit code:', r)
print('\nsubprocess 控制输入输出: $ nslookup')
p = subprocess.Popen(['nslookup'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, err = p.communicate(b'set q=mx\npython.org\nexit\n')  # 相当于下面三条命令: set q=mx; python.org; exit
print(output.decode('utf-8'))
print('Exit code:', p.returncode)
p = subprocess.Popen(['nslookup'], stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr)
p.wait()  # 加上这句话才能在终端等待输入...
p.kill()
print(p.returncode)  # 手动结束的话不会执行到这里, 执行到 kill() 后就会报错 KeyboardInterrupt
开发者ID:coder352,项目名称:shellscript,代码行数:32,代码来源:l1_fork_multiprocessing_Process_subprocess.py


注:本文中的multiprocessing.Process.communicate方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。