2017-10-31 9 views
0

戻り値を持たないファイルに出力する方法はありますか?ここでPythonは返さずにファイルに出力する

は私の関数です:関数がDEPSので

#Function that prints the overall company information for the outfile 
def details(): 
    return "Company Name: %s\nNumber of Employees: %d employee(s)\n" % (company, len(employees)) 

#Function that outputs the employees by department for the outfile 
def deps(): 
    for department in dep_tup: 
     total = len(dep_dict[department]) 
     print("%s with %d employee(s)" % (dep_dict[department][0]["em_department"], total)) 
     for i in range(total): 
      print("%s: %s, %s, $%.2f per year" % (dep_dict[department][i]["name"], dep_dict[department][i]["position"], dep_dict[department][i]["em_department"], dep_dict[department][i]["salary"])) 

#Function for the output file 
def outfile(): 
    f = open("output.txt", "w") 
    f.write(details()) 
    f.write("\nEmployees by Department List\n") 
    f.write(deps()) 
    f.close() 

はしかし、f.write(DEPS())ステートメントは、(実行されません)Noneを返します。私はprintの代わりにreturn文を使用しようとしましたが、必要な処理をしません。その他のオプションは?

+0

'DEPSは()' 'NONE'が_not_'停止しない返すという事実f.write(deps()) 'は実行されませんが、' write() 'は例外を発生させるため、_completing_から正常に停止します。 –

答えて

1

あなたは(あなたの関数のDEPSを持つことができます)あなたはdetails()

def details(): 
    return "Company Name: %s\nNumber of Employees: %d employee(s)\n" % (company, len(employees)) 

f.write(details()) 

で行ったように書かれた必要な値を返すしかし、私はあなたが、これは複数の行を書きたいと思います。その場合、あなたの関数で)(引数としてあなたの関数にファイルを渡す方がよい、との書き込みを呼ぶかもしれない:

#Function that outputs the employees by department for the outfile 
def deps(f): 
    for department in dep_tup: 
     total = len(dep_dict[department]) 
     f.write("%s with %d employee(s)" % (dep_dict[department][0]["em_department"], total)) 
     for i in range(total): 
      f.write("%s: %s, %s, $%.2f per year" % (dep_dict[department][i]["name"], dep_dict[department][i]["position"], dep_dict[department][i]["em_department"], dep_dict[department][i]["salary"])) 

#Function for the output file 
def outfile(): 
    f = open("output.txt", "w") 
    f.write(details()) 
    f.write("\nEmployees by Department List\n") 
    deps(f) 
    f.close() 
+0

ちょうど私が必要としたもの..感謝! – Tarzan

関連する問題