首页 > 解决方案 > 结合两个 subprocess.run() 命令来提高性能

问题描述

我目前正在使用名为 POV-Ray 的程序渲染乐高模型。该计划的细节与我的问题无关。我正在使用 pythonsubprocess模块通过 Windows 命令提示符访问 POV-Ray。我的代码有效,但速度很慢。它的工作原理如下:

  1. 调用可执行文件LDView.exe以将乐高模型导出为.povPOV-Ray 使用的格式。
  2. .pov执行 POV-Ray 以使用一些预先确定的配置渲染文件。

# Declare path executables
ld_view = "C:\\~\LDView64.exe" 
pov_ray = "C:\\~\pvengine.exe"

    # Export model to .pov file format with specified latitude / longitude / zoom
    subprocess.run(
        [
            ld_view,
            os.path.join(model_path, model_name),
            "-DefaultLatLong={}".format(config['DefaultLatLong']),
            "-DefaultZoom={}".format(config['DefaultZoom']),
            "-ExportFile={}_{}.pov".format(config['DefaultLatLong'], config['DefaultZoom']),
        ])
    
    # Render .pov file to .png file
    subprocess.run(
        [
            pov_ray,
            '{}_{}.pov'.format(config['DefaultLatLong'], config['DefaultZoom']),
            '+F',
            'Output_File_Type={}'.format(config['file_type']),
            '-D'
        ])

但是,这很慢。有什么方法可以结合这两个命令,即不在.pov结果目录中显式写入文件?

标签: pythonsubprocesspopen

解决方案


推荐阅读