python从文本文件发送特定数量的命令

python从文本文件发送特定数量的命令,python,command,send,gnu-screen,Python,Command,Send,Gnu Screen,我有一个包含100个bash命令的文本文件,我想在一个新屏幕中每5个命令执行一次,但我不知道在这种情况下是否可以使用“for” 例如,我们有以下命令:- mkdir 1 cd 1 rm -rf 1.txt rm -rf 2.txt cd .. mkdir2 ... 我想创建一个新屏幕,并将前5个命令发送到要执行的屏幕,然后将其他5个命令发送到文件末尾的另一个屏幕 我怎么能做到?编码方面有什么帮助吗?我不明白为什么要这样做,但您可以将您的解决方案与缓冲输入中的5行并通过连接它们结合使用: wit

我有一个包含100个bash命令的文本文件,我想在一个新屏幕中每5个命令执行一次,但我不知道在这种情况下是否可以使用“for”

例如,我们有以下命令:-

mkdir 1
cd 1
rm -rf 1.txt
rm -rf 2.txt
cd ..
mkdir2
...
我想创建一个新屏幕,并将前5个命令发送到要执行的屏幕,然后将其他5个命令发送到文件末尾的另一个屏幕


我怎么能做到?编码方面有什么帮助吗?

我不明白为什么要这样做,但您可以将您的解决方案与缓冲输入中的5行并通过
连接它们结合使用

with open('commands.sh') as file:
    buffer = []
    for i, command in enumerate(file):
        buffer.append(command)
        if i % 5 == 0:
            os.system('screen -m -d "{0}"'.format(';'.join(buffer)))
            buffer = []

什么?你想每5个命令生成一个新屏幕吗?你为什么这么做?你为什么不把输出重定向到一个文件或别的什么地方呢?我发送的命令需要很长时间,因为它要处理大量的文件。我只是写了一个例子。python脚本只是将整个命令的过程自动化。您尝试过什么?Python有一个模块。我使用了
os.system(“scren-m-d{0}.format(line))
但是这会将文本中的每一行发送到一个新屏幕,我想将每5行一起发送