私は、pythonファイルを開く最良の方法がそのタイプに基づいているかを調べようとしています。ファイルが.gzであるかどうかに応じてファイルを開く
例えば、私はこれのような基本的なものを持っていますが、私には 'pythonic'のようには見えませんし、何らかの形でリファクタリングしてより洗練された感じがします。
def openfile(filename):
if read_file_from_top:
if not filename.endswith('.gz'):
with open(filename, 'r') as infile:
for line in infile:
# do something
else:
with gzip.open(filename, 'r') as infile:
for line in infile:
# do something
elif read_file_from_bottom:
if not filename.endswith('.gz'):
with open(filename, 'r') as infile:
for line in infile:
# do something
else:
with gzip.open(filename, 'r') as infile:
for line in infile:
# do something
これを行うには、発電機を使用する方が良いでしょうか?ありがとう。
'read_file_from_top'ブランチと' read_file_from_bottom'ブランチの違いは何ですか?そして、インデントを修正する必要があります(すべてが1つの関数であると仮定して)。 – jszakmeister
インデントは、stackoverflowsエディタで自動的に行われましたが、何らかの理由でその関数を選択しませんでした。私はそれを修正するでしょう。 'read_file_from_top'と' read_file_from_bottom'は上か下からファイルを読み込みます。基本的に日付順に日付の束をたどっています。入力に応じて、下よりも上から読み込むほうが速いかもしれません。しかしこれは私が直面しているジレンマの一例です。 – user1165419
この質問は、[コードレビュー](http://codereview.stackexchange.com/)のスタックエクスチェンジでより適切かもしれません。私が間違っているなら、私を修正してください。 – Tagc