Каков наилучший способ в xonsh зацикливать строки файла?

Какой лучший способ в xonsh оболочка для цикла по строкам текстового файла?

(А) В данный момент я использую

for l in !(cat file.txt): 
    line = l.strip()
    # Do something with line...

(Б) Конечно, есть также

with open(p'file.txt') as f:
    for l in f:
        line = l.strip()
        # Do something with line...

Я использую (A), потому что это короче, но есть ли что-нибудь еще более кратким? И желательно складывать l.strip() в петлю?

Примечание: мой основной интерес - это краткость (в смысле небольшого количества символов) - возможно, использование специальных синтаксических функций xonsh, если это помогает делу.

2 ответа

Вы можете сложить str.strip() в петле с map():

(А):

for l in map(str.strip, !(cat file.txt)):
    # Do something with line...

(В):

with open('file.txt') as f:
    for l in map(str.strip, f):
        # Do something with l..

Минимальное количество символов может даже потребовать от вашей реализации Python освобождения файла в конце выполнения, а не делать это явно:

for l in map(str.strip, open('file.txt')):
    # do stuff with l

Или используя строку p'' для создания пути в xonsh (это правильно закрывает файл):

for l in p'file.txt'.read_text().splitlines():
    # do stuff with l

splitlines() уже удаляет символы новой строки, но не другие пробелы.

Другие вопросы по тегам