python - 将 Python 2.7 中使用子进程的代码转换为 Python 2.3

标签 python stdout

我正在编写一个 python 程序,它将生成一个子进程来基本上克隆一个日志文件。我在 2.7 中有工作代码,但由于供应商限制,我不得不使用 Python 2.3,所以使用 subprocess 模块是不可能的

我需要帮助翻译:

self.FILE_OUT =  open(self.file2write,"a" )
self.FILE_IN=subprocess.Popen( self.file2process,
               stdout=self.FILE_OUT,
               bufsize=0,
               shell=True)

进入 2.3 代码。

我对如何执行 stdout=self.FILE_OUT 感到困惑。

最佳答案

这取决于你在做什么,但执行命令的旧方法是使用 os.popen。它是这样工作的:

>>> echo_stdout = os.popen('echo foo', 'r')
>>> echo_stdout.read()
'foo\n'

os 模块中还有其他版本的 popen 可以做一些事情,比如返回一个包含 stdinstdout 的二元组,或包含 stdinstdoutstderr 的三元组。查看docs了解更多详细信息,如果这没有帮助,请告诉我。

这是一个如何使用 popen2 的例子:

>>> cat_stdin, cat_stdout = os.popen2('cat')
>>> cat_stdin.write('foo\n')
>>> cat_stdin.close()
>>> cat_stdout.read()
'foo\n'

关于python - 将 Python 2.7 中使用子进程的代码转换为 Python 2.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9082935/

相关文章:

python - Argparse 可选标准输入读取和/或标准输出输出

perl - Pod::Simple 没有输出

java - 从 Linux 中使用 Java 读取标准输出不起作用

Python监控子进程的stderr和stdout

python - python 中的正则表达式使用 OR 表示单引号或双引号

python - Base64 字符串 python 上的 pytesseract

python - Django 。对链中的对象进行排序

python - Django:SQL 结果作为字典

linux - 这个 ksh 代码是如何工作的?

python - 导出数据帧时使用当前日期作为文件名