2012-02-24 4 views
3
from sys import argv 
script, origin, destination = argv 

open(destination, 'w').write(open(origin).read()) 

宛先と元のファイルオブジェクトを閉じるにはどうすればよいですか?それとも私が心配する必要がないものですか?変数に割り当てられていないファイルオブジェクトを閉じるにはどうしたらいいですか?

+0

これはあなたを助けるかもしれない:http://stackoverflow.com/questions/1478697/for-line-in -openfilename – steabert

答えて

6

簡単な簡単なスクリプトでは、これらの問題については心配する必要はありませんが、大きなプログラムではファイル記述子が不足する可能性があります。バージョン2.5以降

、Pythonはあなたのためのファイルクローズを行うことができますwith文を、持っている:

from __future__ import with_statement # Only required for Python 2.5 
with open(destination, 'w') as dest: 
    with open(origin) as orig: 
     dest.write(orig.read()) 
+1

**注:** Python 2.5を使用している場合は、ファイルの* top *に 'from __future__ import with_statement'を実行する必要があります。 – mvanveen

+0

@mvanveenありがとう:) – plaes

+0

スクリプトが終了したら、メモリは解放されますか? – Felix

関連する問題