2017-04-25 20 views
0

複数のサブプロセスpythonプログラムの出力を同じファイルに書き込もうとしています。メインのpythonプログラムは、次のようになります。forループで複数のサブプロセスを使用して同じファイルに書き込む

forums = ["f20","e70","x3","e89","series7","m5","f10","series6","z4e85","i3i8","f22","f80","f15","f48","f87"] 

for f in forums: 
     command = "python 01-measurevariation.py "+ f+"-commoncrawl-timestamp.csv-excludeunif" 
     print command 
     exit_status = subprocess.call(command, shell=True) 

そして、サブプロセスのpythonプログラム01-measurevariation.pyは(のみ関連するコードを示す)ここにある:

input_file= str(sys.argv[1]) 
    output_file = "tsvariations.csv" 
    ... 
    with open(input_file) as to_read: 
     with open(output_file, "wb") as tmp_file: 
      reader = csv.reader(to_read, delimiter = ",") 
      writer = csv.writer(tmp_file) 
      .... 
      writer.writerow (["variance of "+sys.argv[1]+" is "+"%.2f" % numpy.var(difflist)+ " hours"]) 
      writer.writerow (["std of "+sys.argv[1]+" is "+ "%.2f" % numpy.std(difflist) +" hours"]) 

ただし、出力ファイル「tsvariations.csv "は、メインのpythonプログラムのforループの最後のサブプロセスの出力である2行しか含んでいません。

tsvariations.csvにすべてのサブプロセス出力が含まれ、合計30行が必要です。 (「フォーラム」リストの15個のエントリーごとに2行ずつ)。どうやってやるの?ありがとう。コメントで解決

+2

ファイルを追加モードで開きます。 – spectras

+0

私にとって完璧に動作します!ありがとうスペクトル! – yuhengd

答えて

0


は追加モードでファイルを開きます。 - spectras昨日

関連する問題