【问题标题】:Python subprocess executed script wont write to filePython子进程执行脚本不会写入文件
【发布时间】:2012-06-23 02:04:40
【问题描述】:

我编写了两个脚本,其中一个脚本调用 subprocess.Popen 来运行终端命令来执行第二个脚本。等待5秒后,将终止子进程。

在子进程中,我有一个 while 循环轮询寄存器并将该寄存器的内容写入文件。

我使用的方法是

f = open(filename, 'w')
...
while 1:
    *poll register*
    f.write(fp0)
    sleep(1)

每当我单独使用 while 循环运行脚本时,它都会将寄存器的内容写入文件。但是,当我执行主脚本并将轮询脚本作为子进程执行时,它在终止后不会写入文件。

任何人都可以对这个问题提供任何建议吗?

【问题讨论】:

    标签: python subprocess multiprocessing


    【解决方案1】:

    在打开文件时使用上下文,并在您睡觉前添加刷新:

    with open(filename, 'w') as f:
        ...
        while 1:
            *poll register*
            f.write(fp0)
            f.flush()
            sleep(1)
    

    【讨论】:

      【解决方案2】:

      由于您要终止子进程,因此它可能没有将输出刷新到文件中。 尝试调用f.flush() 以确保将输出写入文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-02
        • 2021-04-02
        • 2015-02-27
        • 1970-01-01
        • 1970-01-01
        • 2021-12-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多