存储由shell命令

时间:2017-01-06 16:15:06

标签: python

以下是与代码的这一部分相关的代码:

command1 = '/usr/local/GMT5SAR/bin/ALOS_baseline ' + str(master_file) + ' ' + str(master_file)
print command1
p1 = Popen(command1, shell=True, stdout=PIPE)
out,err = p1.communicate()
print out

我的命令工作正常。这是我的控制台的屏幕截图。

enter image description here

我需要存储说lon_tie_point .....lat_tie_point .....的行。我遇到的问题是这些行不包含在out中,这就是我正在打印的内容。我怎么能这样做呢?

1 个答案:

答案 0 :(得分:1)

似乎包含所需信息的行正在stderr而不是stdout上打印。来自subprocess documentation

  

subprocess.STDOUT

     

可以用作Popen的stderr参数的特殊值,表示标准错误应该与标准输出放在同一个句柄中。

基于此,我认为以下内容可能有效:

command1 = '/usr/local/GMT5SAR/bin/ALOS_baseline ' + str(master_file) + ' ' + str(master_file)
print command1
p1 = Popen(command1, shell=True, stdout=PIPE, stderr=STDOUT)
out,err = p1.communicate()
print out