Python脚本读取终端每一段时间



我需要创建做一些事情的脚本:

  1. 将一个命令传递到Linux shell,该命令将启动一个进程
  2. 每隔(例如(1秒读取一次端子锥,然后清除端子以只获得新的线路
  3. 关闭进程和终端

我试图模仿这一点,只需编写一个命令并读取两次即可简化任务,但似乎不起作用。你知道如何解决这个问题吗?有可能这样做吗?或者有更聪明的方法来处理它吗?

from subprocess import Popen, PIPE, STDOUT
import pty
import os
master, slave = pty.openpty()
p = Popen('ls', shell=True, stdout=slave, stdin=PIPE, stderr=slave, close_fds=True)
stdin_handle = p.stdin
stdou_handle = os.fdopen(master)
stdin_handle.write('cd /')
stdin_handle.write('ls')
print stdout_handle.readline()
stdin_handle.write('clear')
stdin_handle.write('cd /home')
stdin_handle.write('ls')
print stdout_handle.readline()
stdin_handle.write('exit')

我认为您应该执行如下代码:

import os
import time
while True:
start_time = time.time()
# can check if you are in correct working directory: os.getcwd()
os.chdir('/')
os.listdir()
print(f'33ce[3J')
os.chdir('/home')
os.listdir()
print(f'33ce[3J')
time.sleep(1 - ((time.time() - start_time) % 1))
# exit due to some conditional for example: if datetime.now().hour == 9:
exit()

最新更新