首页 > 解决方案 > 在监视文件大小的同时执行子进程

问题描述

我正在执行一个生成文件的子进程。但是我想确保生成的文件不会大于特定大小。因为我无法提前知道文件有多大,所以我想执行子进程并在文件达到一定大小时终止它。就像是:

while os.path.getsize(path_to_file) < max_file_size:
    cmd_csound=subprocess.Popen(['exec', path_to_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)

标签: pythonsubprocesspopenfilesize

解决方案


因此,您需要循环直到 (a) 进程退出,或 (b) 文件变得太大。你需要类似的东西:

cmd_csound=subprocess.Popen(['exec', path_to_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
while cmd_csound.returncode is None:
    if os.path.getsize(path_to_file) > max_file_size:
        cmd_csound.kill()
        break
    time.sleep(1)
    cmd_csound.poll()

推荐阅读