我需要创建一些大文件并在python中显示写入进度。目前,我正在使用此代码创建文件。但我无法显示进度。 Python Write
函数返回在write
操作结束时实际写入的数字。但是我需要知道每秒写入多少字节。
oneGB = 1024*1024*1024 # 1GB
with open('large_file', 'wb') as fout:
bytes_number = fout.write(os.urandom(oneGB))
print(bytes_number)
我知道我可以在Linux中使用dd
comand与progress
来获得预期的结果,不幸的是,我正在使用的系统不支持progress
作为{{1 }}命令。我在尝试运行dd命令时得到了这个。
dd
这是我的dd命令:
dd: invalid status flag: `progress'
答案 0 :(得分:0)
当然,最好的工具是pv
。如果您无权全局安装它,您仍然可能只能从源目录(没有sudo)在用户目录中构建和安装它,因为它是使用autoconf / automake安装的,因此您只需要在进行安装之前,请与./configure
一起运行--prefix=$HOME/bin
。
但是,如果您真的想编写Python脚本,则需要考虑两个部分:进度条本身和进度条的数据。
对于进度条本身,@ Mntfr已经提到了a question。
有关进度条信息,您将需要某种方式来跟踪到目前为止已写入了多少数据。因此,您需要一次写入较小的数量(例如,在更新进度条之前仅写入5MB),或者您将需要异步跟踪输出文件的大小,并相应地更新进度条。第一种方法可能总体上较慢(因为它涉及开始和停止编写),但是第二种方法可能更难(因为它需要脚本中的异步性,除非您只编写两个脚本并运行,否则在Python中实现该方法不是很有趣。他们并排)。这两个想法应该使您开始实现所需的内容。