以下是与代码的这一部分相关的代码:
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
我的命令工作正常。这是我的控制台的屏幕截图。
我需要存储说lon_tie_point .....
和lat_tie_point .....
的行。我遇到的问题是这些行不包含在out
中,这就是我正在打印的内容。我怎么能这样做呢?
答案 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