无法将命令的输出重定向到文件

问题描述 投票:0回答:1

我的问题是在执行下面的代码后,我能够看到shell中每个命令的输出。如何将shell输出到文件中

我尝试过以下但是它不起作用

Python上的p

 import os

 f=open("pr1.txt","r")
 df=0
 for i in f:

     df=df+1
     if df==4:
        break
     print i
     os.system("udstask expireimage -image" + i)

执行“os.system(”udstask expireimage -image“+ i)”后每次都会显示命令对文件的状态

python-2.7 os.system
1个回答
0
投票

你可以尝试类似的东西:

import os

f=open("pr1.txt","r")
 df=0
 for i in f:

     df=df+1
     if df==4:
        break
     print i
     os.system("udstask expireimage -image" + i + " > pr.txt")

它会将命令的输出重定向到pr.txt。

您应该使用subprocess而不是os.system,它具有更高效的流处理,并在调用shell命令时为您提供更多控制:

import os
import subprocess

f=open("pr1.txt","r")
 df=0
 for i in f:

     df=df+1
     if df==4:
        break
     print i
     task = subprocess.Popen(["udstask expireimage -image" + i],stdout=subprocess.PIPE,shell=True)
     task_op = task.communicate()
     task.wait()

现在您将输出存储在task_op中,您可以将其写入文件或执行任何操作。它是元组形式,您可能只需要编写必需的部分。

© www.soinside.com 2019 - 2024. All rights reserved.