python3 管道

洛仁耀 3个月前 55浏览 0评论

Python的管道是一种在命令行应用程序中执行外部程序的简单方法。管道可以将标准输出流(stdout)传输到另一个进程的标准输入流(stdin)中。Python3中管道可以通过subprocess库进行使用。

import subprocess

p1 = subprocess.Popen(['cat', 'file1.txt'], stdout=subprocess.PIPE)
p2 = subprocess.Popen(['wc', '-l'], stdin=p1.stdout, stdout=subprocess.PIPE)

output = p2.communicate()[0]
print(output.decode())

上述代码是一个简单的管道示例。首先,使用subprocess库的Popen方法创建了两个进程。第一个进程是运行“cat”命令的进程,它将“file1.txt”文件的内容输出到标准输出流中。第二个进程是运行“wc -l”命令的进程,它将标准输入流连接到第一个进程的标准输出流上,并统计输入内容的行数。

最后,使用communicate()方法获取第二个进程的输出结果,并将其打印出来。

Python3中的管道不仅可以用于连接两个进程,也可以用于在同一个进程中连接不同的函数。下面是一个简单的示例。

def f1():
    return 'Hello'

def f2(s):
    return s.upper()

result = f2(f1())
print(result)

上述代码中,函数f1返回一个字符串“Hello”,函数f2接受一个字符串并返回该字符串的大写形式。然后,在主函数中使用管道将这两个函数连接起来并输出结果。

总的来说,Python3中的管道是一个非常有用的工具,可以很方便地连接不同的进程和函数,提高程序的可读性和可维护性。