Python Do While sh函数

2024-09-25 00:34:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在调用sh文件时运行python脚本,并且在这个进程运行的所有时间内都运行python脚本。你知道吗

基本上,在安装过程中它是一个python微调器

import sys
import time

do
  def spinn():
  print "processing...\\",
  syms = ['\\', '|', '/', '-']
  bs = '\b'
  for _ in range(10):
      for sym in syms:
          sys.stdout.write("\b%s" % sym)
          sys.stdout.flush()
          time.sleep(.1)
  spinn()
while
  def installing():
    import subprocess
    subprocess.call(["sudo sh", "installer.sh"],shell=True)
  installing()

有没有办法在python上实现这一点?你知道吗


Tags: 文件inimport脚本fortimedefsh
1条回答
网友
1楼 · 发布于 2024-09-25 00:34:41

subprocess.call()等待子进程退出。改用subprocess.Popen。然后定期使用.poll()检查进程何时退出。你知道吗

import itertools
import os
import subprocess
import sys
import time

def installing():
    null = open(os.devnull, 'wb')
    p = subprocess.Popen('echo blah && sleep 5', shell=True, stdout=null)
    #p = subprocess.Popen('sudo sh installer.sh', shell=True, stdout=null)
    return p, null

def spin(p_stdout):
    p, stdout = p_stdout
    syms = itertools.cycle(['\\', '|', '/', '-'])
    sys.stdout.write('processing....')
    sys.stdout.flush()
    while p.poll() is None:
        sys.stdout.write('\b'+next(syms))
        sys.stdout.flush()
        time.sleep(0.1)
    p.wait()
    stdout.close()

spin(installing())

相关问题 更多 >