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