# 如何对迭代器做切片操作
# 有某个文本文件,我们想读取其中某范围的内容如100~300行之间的的内容,python中文本切片的方式得到一个100-300行文件内容的生成器?
# f=open('/var/log/dmesg')
# f[100:300] 可以吗?
from itertools import islice
def main():
# f = open('text.txt','w+')
# for x in range(1000000):
# f.write(str(x))
# f[100:300]
# TypeError: '_io.TextIOWrapper' object is not subscriptable
# f.close()
# 从多少行到多少行
with open('text.txt') as f:
print(islice(f, 100, 300))
for line in islice(f, 0, 300):
print(line,)
for line in islice(f, 0, None):
print(line, )
# lines=f.read()
# 会把文件导入内存中 一次性的读入可能是一个灾难
# print(lines[100:300])
# 指针跑到第一位
# f.seek(0)
# print()
# for line in f:
# print(line)
# islice会消耗原来的对象
l=list(range(20))
t=iter(l)
print(t)
for x in islice(t,5,10):
print(x)
for x in t:
print(x)
pass
main()