我的问题是,除了下面之外,是否还有其他方法可以一次一个字符地遍历文件?
with open(filename) as f:
while True:
c = f.read(1)
if not c:
print "End of file"
break
print "Read a character:", c
既然没有像Java中那样检查是否有东西要读取的函数,那么还有什么其他方法呢。另外,在示例中,当变量 c 到达文件末尾时,它会包含什么?感谢任何人的帮助。
另一种选择是使用itertools.chain.from_iterable() http://docs.python.org/library/itertools.html#itertools.chain.from_iterable:
import itertools
with open("test.txt") as f:
for c in itertools.chain.from_iterable(f):
print(c)
chain.from_iterable
创建一个 iterable,它从给定 iterable 中的第一个 iterable 返回元素,直到耗尽,然后继续处理下一个 iterable,直到所有 iterable 都耗尽。通常,这用于展平列表的列表,但在这种情况下,它允许您忽略这些行。
这是否真的比嵌套循环更好是另一回事(它会快一点,但这不太重要),但值得一提。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)