Каков наилучший способ в xonsh зациклить строки файла? - PullRequest
0 голосов
/ 12 ноября 2018

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

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

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

(B) Конечно, есть и

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

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

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

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Минимальное количество символов может даже включать в себя реализацию 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() уже удаляет символы новой строки, но не другие пробелы.

0 голосов
/ 12 ноября 2018

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

(A):

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..
...