在xonsh
shell中循环浏览文本文件行的最佳方法是什么?
(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的特殊语法功能。
答案 0 :(得分:2)
您可以使用map()
将str.strip()
折叠成循环:
(A):
for l in map(str.strip, !(cat file.txt)):
# Do something with line...
(B):
with open('file.txt') as f:
for l in map(str.strip, f):
# Do something with l..
答案 1 :(得分:1)
最小字符数甚至可能涉及在执行结束时依靠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()
已经删除了换行符,但没有其他空格。