Я пытаюсь выяснить, какой лучший способ открыть файл python основан на его типе.открыть файл в зависимости от того, является ли он .gz или нет
Например, у меня есть что-то основное, но это просто не кажется мне «пифоническим», и я чувствую, что он каким-то образом может быть реорганизован и написан более чистым;
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'? И вы должны исправить отступы (если предположить, что все это должна быть одна функция). – jszakmeister
Отступ был автоматическим в редакторе stackoverflows, по какой-то причине он не подбирает функцию. Но я все исправлю. 'Read_file_from_top' и' read_file_from_bottom' читают файл сверху или снизу, в основном он проходит пучок дат в хронологическом порядке, в зависимости от ввода его можно быстрее читать сверху, а не снизу. Но это всего лишь пример дилеммы, с которой я столкнулся. – user1165419
Этот вопрос может быть более уместным в разделе [Обзор кода] (http://codereview.stackexchange.com/) Stack Exchange. Пожалуйста, поправьте меня, если я ошибаюсь. – Tagc