python3のprint関数とwriteメソッドの違い


以下のコードに何か違いはありますか？

[code]

    file = open("sample.txt", "w", encoding="utf-8")
    print("hello", file=file)
    file.write("hello")
    file.close()
    
[/code]

python3ではprint文でファイル書き込みができますが、使い分ける状況などはありますか？




"ファイルへの出力(書き込み)"という意味では一見同じですが、細かく見ると以下のような違いがあるようです。

> print : デフォルトでは出力の末尾に改行を追加する(変更は可能)。  
>  write : 渡された文字列をそのまま出力。文字列以外は受け取れない。

writeの場合は繰り返し実行した時、以下の通り文字列が繋がって出力されます。

[code]

    write("Hello")
    write("Hello")
    write("Hello")
    # => HelloHelloHello
    
[/code]

参考:  
[Python Tips：改行なしで文字列を出力したい](http://www.lifewithpython.com/2013/12/python-
print-without-.html)

