下面的代码基本上打印一个点".",其中我试图模仿shellscript中的进度条
#!/bin/bash
printf "Copying files .."
sleep 1
printf "."
sleep 1
printf "."
sleep 1
printf ".."
clear
sleep 1
echo ""
echo "File copy complete"
在 Python 中,你可以做这样的事情:
from time import sleep
from sys import stdout
Print = stdout.write
Print("Copying files..")
for x in xrange(4):
Print(".")
sleep(1)
print "nFile copy complete."
在每次迭代中,它都会打印一个新的.
快速搜索后,我找到了这篇文章,它很好地解释了如何在更新进度条的同时复制文件/目录。
有很多方法可以编写循环。 我有点喜欢:
yes | sed 5q | while read r; do sleep 1; printf .; done; echo
但是你真的不想要循环;你想继续打印进度条,直到副本完成,所以你想要这样的东西:
progress() { while :; do sleep 1; printf .; done; }
copy_the_files & # start the copy
copy_pid=$! # record the pid
progress & # start up a process to draw the progress bar
progress_pid=$! # record the pid
wait $copy_pid # wait for the copy to finish
kill $progress_pid # terminate the progress bar
echo
或者也许(您应该将"睡眠 5"替换为复制文件的命令)
#!/bin/bash
copy_the_files() { sleep 5; kill -s USR1 $$; }
progress() { while :; do sleep 1; printf .; done; }
copy_the_files &
progress &
trap 'kill $!; echo' USR1
wait
它可能会帮助你!
import time
print "Copying files .."
time.sleep(1)
print "."
time.sleep(1)
print "."
time.sleep(1)
print ".."
time.sleep(1)
print ""
print "File copy complete"