#!/usr/bin/env python
import time
import subprocess
# sudo apt install progress
def file_copy_progress(src, dst):
"""進捗状況付きでファイルコピー実行"""
command = 'cp {} {}'.format(src, dst)
proc = subprocess.Popen(command,
shell=True, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
while True:
status =
proc.poll()
# print("poll
status={}".format(status))
if status is
not None:
break
progress =
subprocess.check_output('progress')
if
len(progress) == 0:
time.sleep(1)
continue
print("progress0={} {}".format(progress, type(progress)))
progress =
progress.decode('utf-8')
#
print("progress1={} {}".format(progress, type(progress)))
lines =
progress.splitlines()
#
print("lines={}".format(lines))
#progress =
lines[1]
progress =
lines[1].strip()
print("progress2={} {}".format(progress, type(progress)))
"""
progress =
progress.split('%')
print("progress4={} {}".format(progress, type(progress)))
progress =
float(progress[0])
print("progress5={} {}".format(progress, type(progress)))
"""
time.sleep(1)
print("copy done")
def main():
src = "./big_file"
dst = "./dst_file"
file_copy_progress(src, dst)
if __name__ == '__main__':
main()
|