调用subprocess.check_call()
允许为stdout指定一个文件对象,但是在将数据写入文件之前,我想在逐行的基础上修改它们。将subprocess.check_call的stdout重定向到函数?
我目前输出重定向到一个临时文件(由tempfile.TemporaryFile()
创建。check_call
结束后,我读了临时文件中的行由行,做了修改和写入最终输出文件。
由于输出是大,一个纯粹的内存解决方案是不可行的,我想修改的即时数据和写入直接在最终输出文件。
有谁知道如何做到这一点?
-1:不,它不起作用,因为子进程需要一个带'.fileno()'方法的对象,并直接写入由它返回的文件描述符。事实上,文件描述符直接传递给子进程,所以python不参与写入。 – nosklo 2011-03-30 21:45:12
奇数。我以为我记得能够在没有'.fileno()'的情况下传递类似文件的对象。好吧。我猜,我的错误。 – ssokolow 2011-03-31 12:05:27