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