python按行读取文件取消空白行_在Python中读取文件时忽略空行的最简单方法
我將堆棧生成器表達式:with open(filename) as f_in:
lines = (line.rstrip() for line in f_in) # All lines including the blank ones
lines = (line for line in lines if line) # Non-blank lines
現在,lines都是非空行。這樣你就不用在電話線上打兩次電話了。如果您想要一個行列表,那么您可以執行以下操作:with open(filename) as f_in:
lines = (line.rstrip() for line in f_in)
lines = list(line for line in lines if line) # Non-blank lines in a list
你也可以用一行代碼(不包括with語句)來完成,但它沒有效率更高,也更難閱讀:with open(filename) as f_in:
lines = list(line for line in (l.strip() for l in f_in) if line)
更新:
我同意這是丑陋的,因為重復的令牌。如果你愿意,你可以寫一個生成器:def nonblank_lines(f):
for l in f:
line = l.rstrip()
if line:
yield line
那就叫它:with open(filename) as f_in:
for line in nonblank_lines(f_in):
# Stuff
更新2:with open(filename) as f_in:
lines = filter(None, (line.rstrip() for line in f_in))
在CPython上(使用確定性引用計數)lines = filter(None, (line.rstrip() for line in open(filename)))
在Python 2中,如果需要生成器,請使用itertools.ifilter;在Python 3中,如果需要列表,請將整個過程傳遞給list。
總結
以上是生活随笔為你收集整理的python按行读取文件取消空白行_在Python中读取文件时忽略空行的最简单方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java使用原子类进行多线程的 i++
- 下一篇: python转为字节_将字节转换为pyt