xonsh中遍历文件行的最佳方法是什么?

时间:2018-11-12 00:31:14

标签: python bash xonsh

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的特殊语法功能。

2 个答案:

答案 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()已经删除了换行符,但没有其他空格。