1

外部コマンドを呼び出す Python プログラムがあります。コマンドは次のようにする必要があります。

java -jar ../GeoNetCWBQuery-4.0.2-bin.jar -s "NZMQZ..HH..." -d 3600 -event:time
"2004/12/26 00:58:50" -event:lat "3.3" -event:lon "95.78" -event:depth "10.0"
-o %c%s%y%/M%/D%z

Python プログラムでは、コマンドに入力する必要がある値、つまり日付、時刻、緯度、経度、深度に名前を割り当てました。(巨大なファイルをループしているので、値を入力することはできません。)したがって、私の質問は、どのように書き出すか、つまり、値をコマンドに正しく挿入する方法です。現時点では(動作していません):

os.system('java -jar GeoNetCWBQuery-4.0.2-bin.jar -s "NZMQZ..HH..." -d 3600
-event:time " + date + +time + " -event:lat " + lat + " -event:lon " + lon +
" -event:depth " + depth + " -o %c%s%y%M%D%z')
4

1 に答える 1

2

一重/二重引用符に問題があります。

os.system('java -jar GeoNetCWBQuery-4.0.2-bin.jar -s "NZMQZ..HH..." -d 3600
-event:time ' + date + time + ' -event:lat ' + lat + ' -event:lon ' + lon +
' -event:depth ' + depth + ' -o %c%s%y%M%D%z')

また、Udo Klein が指摘しているようにos.system、もう使用しないでくださいsubprocess.call。コードを変更os.systemするsubprocess.call場合は、次のようになります。

subprocess.call('java', ['-jar', 'GeoNetCWBQuery-4.0.2-bin.jar', '-s', 'NZMQZ..HH...', '-d', '3600',
'-event:time', date, time,  '-event:lat', lat, '-event:lon', lon, 
'-event:depth', depth, '-o', '%c%s%y%M%D%z'])
于 2013-07-30T10:59:37.267 に答える