gpt4 book ai didi

Python Do While sh 函数

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:48 25 4
gpt4 key购买 nike

我需要在调用 sh 文件时以及该进程运行的整个过程中运行 python 脚本。

基本上它是安装过程中的一个 python spinner

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上做到这一点?

最佳答案

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())

关于Python Do While sh 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17300319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com