2016-08-31 2 views
0

'/ usr/local/bin/wave'는 파일 이름을 입력으로 허용하기 때문에 프로세스를 호출 한 다음 명령을 "보내"출력 파일이 작성 될 때까지 기다려야합니다 . 그런 다음 내 프로세스가 출력 파일을 읽을 수 있습니다. 출력 파일에 쓰지 않는 코드는 다음과 같습니다.PV-Wave를 호출하는 python

hdfFile = "/archive/HDF/16023343.hdf" 
pngFile = "/xrfc_calib/xrfc.130.png" 
lpFile = os.environ['DOCUMENT_ROOT'] + pngFile 
waveCmd = "hdfview, '" + hdfFile + "', outfile='" + lpFile + "', web, view='RASTER', /neg" 
os.environ['WAVE_PATH'] = "/oudvmt/wave/pro:/dvmt/wave/pro" 
wfile = subprocess.Popen ('/usr/local/bin/wave >&2', shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE) 
wfile.stdin = "\@hdf_startup\n\@hdf_common\n" + waveCmd + "\nquit\n" 
+0

마지막 두 줄은 다음과 같습니다. wfile = subprocess.Popen ('/ usr/local/bin/wave> & 2', shell = True, stdin = subprocess.PIPE, stdout = subprocess.PIPE) wfile.stdin = "\ @hdf_startup \ n \ @hdf_common \ n"+ waveCmd + "\ nquit \ n" –

답변

0

실종 된 것을 찾았습니다. 변경 사항은 마지막 두 줄로 변경됩니다. 그들은 다음과 같습니다 :

wfile = subprocess.Popen ('/usr/local/bin/wave', stdin=subprocess.PIPE, stdout=subprocess.PIPE) 
wfile.communicate("\@hdf_startup\n\@hdf_common\n" + waveCmd + "\nquit\n") 

"stdout"을 설정하여 PV-Wave의 추가 출력을 방지해야했습니다. "통신"을 사용하여 프로세스가 완료 될 때까지 기다려야했습니다.

관련 문제