python 循环读取文件中多少行的问题,读取文件不重复。

假如有个txt文件,里面是数据排列格式是每行每行的排列。
我现在需要 每次去进入txt读取50行数据,提交这50行数据后,在进行下一次读取50行数据,那怎么避免第二次读取的50行操作不会重复读取到第一次所读取到的数据?

第一次运行结束后,怎么能保证下次读取到的是50行以后的内容?

list_t = []
num = 0
with open('niu.txt','r',encoding='utf-8')as f:
     for line in f:
         if num == 50:
              break
         else:
              list_t.append(line.strip())
              num += 1

你可以使用readline方法,一次读一行,循环50次就是读50行
其实txt文件一般都不会太大,你完全可以直接一次性读到内存里,变成一个list,只不过拼接sql的时候判断一下,每50个一个字符串呗。
-=-=-
另,你自己不是已经写了代码去读取了,num=50别break出去,直接处理,处理完继续循环不就结了

可以不进行循环,直接全部读取,且只读取一次。然后选取0-50行内容进行操作,操作完毕后,在操作后续的内容即可。

list_t = []
f = open(''niu.txt','r',encoding='utf-8'')
lines=f.readlines()
list_t.append(lines[0,50])

但是我第二次也要读取50行呀,假设txt有200行数据,第一次读取50行,第二次就要读取51-100位置的行数,第三次读101-150,第四次读取151-200

能否实现:先拷贝下txt文件,在读取原txt列表,读取50行并且同时删除这读取的50行,这样下次再读取不会有重复的了


def read_txt():
    with open('niu.txt', 'r', encoding='utf-8') as f:
        data = f.readlines()
    l_index = 0
    r_index = 50
    output = data[l_index: r_index]
    for i in output:
        print(i.rstrip("\n"))
    while True:
        u_input = str(input("请输入(1:前50行,2:后50行, q:退出)"))
        if u_input == "q":
            break
        if u_input == "1":
            l_index -= 50
            r_index -= 50
            if l_index < 0:
                print("Error: 前面不存在!")
                l_index = 0
                r_index = 50
        if u_input == "2":
            l_index += 50
            r_index += 50
        output = data[l_index: r_index]
        for i in output:
            print(i.rstrip("\n"))

if __name__ == '__main__':
    read_txt()

这个思路可以吗?可以往前,往后读,需要返回数据的话,把print改成return

思路: 打开文件之后,先不要关闭,读完50行后,下次继续用。 结束时关闭文件

打开文件
fileHandler = open ("data.txt", "r");

一次读取一行, 50行后返回
line = file.readline();

下次需要时继续读取文件, 会从上次的地方继续读取内容
line = file.readline();