You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派如何根据输入文件自动启动多终端并行运行Python脚本

解决树莓派上按输入文件行数启动多终端并行运行Python脚本的问题

我来帮你搞定这个需求!树莓派默认桌面环境是LXDE,自带的终端是lxterminal,这是最省心的选择——不用额外折腾安装,直接就能用。之前你试的gnome-terminal在树莓派上默认没预装,xterm需要手动安装,咱们先从最顺手的方案说起:

方案1:用树莓派自带的lxterminal实现

先确认lxterminal可用,打开终端输入:

lxterminal --version

如果能正常输出版本信息,就可以用下面的脚本替换你原来的代码:

#!/bin/bash
# 逐行读取inputs.txt,每行启动一个终端运行脚本
while IFS= read -r word; do
    # 启动新终端,运行Python脚本后保持终端打开(方便查看结果)
    lxterminal -e "bash -c 'python3 enttest.py \"$word\"; exec bash'" &
done < inputs.txt

脚本细节说明:

  • while IFS= read -r word:比for word in $(cat inputs.txt)更安全,能兼容未来可能带空格的参数(你提到以后会加分隔符参数,这个写法扩展性更好)
  • &:让每个终端在后台启动,不会阻塞脚本,真正实现并行运行
  • exec bash:让Python脚本运行结束后,终端不会自动关闭,方便你查看输出日志;如果不需要保留终端,直接删掉这部分即可

方案2:如果想用xterm的话

如果偏好xterm,先通过命令安装它:

sudo apt update && sudo apt install xterm

然后把脚本里的lxterminal换成xterm就行,逻辑完全一致:

#!/bin/bash
while IFS= read -r word; do
    xterm -e "bash -c 'python3 enttest.py \"$word\"; exec bash'" &
done < inputs.txt

后续扩展:处理多参数的情况

你提到未来会添加用分隔符区分的参数,比如每行有多个参数(比如arg1 arg2 arg3),可以修改read命令来拆分参数:

#!/bin/bash
# 假设每行用空格分隔多个参数
while IFS=' ' read -r arg1 arg2 arg3; do
    lxterminal -e "bash -c 'python3 enttest.py \"$arg1\" \"$arg2\" \"$arg3\"; exec bash'" &
done < inputs.txt

如果用其他分隔符(比如逗号),把IFS=' '改成IFS=','就行。

最后一步:让脚本可执行

给你的bash脚本加上执行权限:

chmod +x your_script.sh

然后运行它:

./your_script.sh

这样就会自动启动和inputs.txt行数一样多的终端,每个终端独立运行带对应参数的Python脚本啦!

内容的提问来源于stack exchange,提问作者sixplus4iszen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:46:41