パスを文字列またはファイルオブジェクトとして受け入れる関数を記述したいと思います。これまでのところ私が持っている:ファイルオブジェクトまたはパスを受け入れるPython関数
do_stuff
が開かれたファイルオブジェクトを受け取り
def awesome_parse(path_or_file):
if isinstance(path_or_file, basestring):
f = open(path_or_file, 'rb')
else:
f = path_or_file
with f as f:
return do_stuff(f)
。
これを行うより良い方法はありますか? with f as f:
には何らかの反響がありますか?
ありがとうございます!
ああ...いいえファイルを閉じるときにそれを閉じてはいけません!私は間違いなくそれが起こることを望んでいません。ありがとう! – TorelTwiddler
「yield f」を「yield」してはいけませんか? –
'@ contextlib.contextmanager'は正確に何をしますか?私はなぜそれなしで 'AttributeError:__exit__'を取得するのですか?ありがとう! –