Python以行数写入txt,并自动创建TXT文件

已知一个列表里有140万行文字,怎么以每50万行写入一个txt,写满后自动创建新的txt继续写入50万行,直到列表内容全部写完。
所有平行语料都放置于若干个TXT文件中。每个TXT文件存50万行(英文25万行,中文25万行),TXT文件用(Bi_text_1.txt, Bi_text_2.txt, Bi_text_3.txt…命名。即如果一个TXT文件存满50万行,则从下一个TXT文件开始存储,文件名编号自动增长。

img

参考一下简单示例:

l=['abc','def','ghi','jkl','mno','pqr','stu','vwx','yza','bcd','efg','hij','klm','nop']
for i in range(0,len(l),5):
    with open(f'Bi_text_{i//5+1}.txt','w',encoding='utf-8') as f:
        f.write('\n'.join(l[i:i+5]))

写了一个示范
实际运行,你把 file_len = 50 改成 file_len = 500000 即可
另外,为了提高磁盘效率, 可以考虑把
for item in contents[(i - 1) * file_len:i * file_len]:
f.write("{}\n".format(item))
改成一次写1000行。


contents = ['line{}'.format(i) for i in range(142)]
file_len = 50
file_max = (len(contents)//file_len) + 1
for i in range(1,file_max+1):
    file_name = "Bi_text_{}.txt".format(i)
    print(file_name)
    # print(contents[(i - 1) * file_len:i * file_len])
    with open(file_name,'w') as f:
        for item in contents[(i - 1) * file_len:i * file_len]:
            f.write("{}\n".format(item))
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632