如何通过echo管道向Python脚本传递输入?
实现Python脚本接收管道输入
你猜的没错,用sys模块确实能搞定这个需求,下面给你几种常用的实现方式:
方法一:一次性读取所有输入
直接用sys.stdin.read()读取管道传过来的全部内容,代码示例:
import sys # 读取所有输入,strip()去除首尾的空白和换行符 input_data = sys.stdin.read().strip() print("接收到的输入内容:", input_data)
方法二:逐行读取输入
如果输入是多行内容,用循环逐行处理更方便:
import sys # 遍历标准输入流的每一行 for line in sys.stdin: # 处理每一行内容,同样用strip()清理换行符 processed_line = line.strip() print("读取到一行:", processed_line)
不用sys模块的替代方案
其实不用导入模块也能实现,利用input()配合异常捕获处理EOF(输入结束):
try: while True: # 逐行读取输入 line = input() print("读取到内容:", line) except EOFError: # 输入结束时触发该异常,直接退出循环 pass
测试的时候直接用你说的命令就行:
echo "yada yada" | python3 file.py
内容的提问来源于stack exchange,提问作者evolhart
相关产品推荐
相关产品推荐

