Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python xonsh中循环文件行的最佳方式是什么?_Python_Bash_Xonsh - Fatal编程技术网

Python xonsh中循环文件行的最佳方式是什么?

Python xonsh中循环文件行的最佳方式是什么?,python,bash,xonsh,Python,Bash,Xonsh,shell中循环文本文件行的最佳方式是什么 (A)目前我正在使用 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)是因为它较短,但是还有更简洁的吗?

shell中循环文本文件行的最佳方式是什么

(A)目前我正在使用

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

您可以使用以下方法将
str.strip()
折叠到循环中:

(A) :

(B) :


最小字符数甚至可能需要依赖python实现在执行结束时释放文件,而不是显式地执行:

for l in map(str.strip, open('file.txt')):
    # do stuff with l
或者使用p“”字符串在xonsh中创建路径(这会正确关闭文件):


splitlines()
已经删除了新行字符,但没有删除其他空格

是的,两个版本都可以。我刚刚在xonsh 0.8.3中测试了它们。是的……我将您对简洁的需求误解为对可读性的需求。为了代码的简洁,编辑了我的回复。请注意,CPython将在程序退出时自动关闭您的文件,但其他Python实现可能不会。哇,带有p“”符号的版本现在看起来非常吸引我。Thx.刚刚意识到
路径
对象上的方法称为
读取文本
,而不是
获取文本
。相应地编辑了答案。
with open('file.txt') as f:
    for l in map(str.strip, f):
        # Do something with l..
for l in map(str.strip, open('file.txt')):
    # do stuff with l
for l in p'file.txt'.read_text().splitlines():
    # do stuff with l