Python执行whilesh函数

Python执行whilesh函数,python,sh,do-while,Python,Sh,Do While,我需要在调用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.

我需要在调用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上实现这一点?

子进程。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())
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())

@StevenRumbalski,谢谢你的英语修复。它真的很棒!!谢谢,但是。。它还显示正在安装的软件包的所有输出。。。执行此操作后,将使用110 kB的额外磁盘空间。获取:1 raring/main libpython2.7-stdlib amd64 2.7.4 ubuntu3[2381 kB]23%[1 libpython2.7-stdlib 1359 kB/2381 kB 57%]13.9 kB/s 5分钟23秒![微调器动画][1]可以隐藏此信息吗?谢谢[1] :@StevenRumbalski,谢谢你的英语修复。它真的很棒!!谢谢,但是。。它还显示正在安装的软件包的所有输出。。。执行此操作后,将使用110 kB的额外磁盘空间。获取:1 raring/main libpython2.7-stdlib amd64 2.7.4 ubuntu3[2381 kB]23%[1 libpython2.7-stdlib 1359 kB/2381 kB 57%]13.9 kB/s 5分钟23秒![微调器动画][1]可以隐藏此信息吗?谢谢[1]: