以下代码使用“t.txt”中的特定行数写入多个文件,并使用增加的行数命名每个文件。现在我要写所有名称为“1,2,3,4,5,6,7,8 ......”或“mya,myb,myc,myd ......”的文件。如何更改代码?
9 with open ("t.txt") as f:
10 probelist = [x.strip() for x in f.readlines()]
11 for i in probelist:
12 if not itemcount % filesize:
13 outfile = open("{}".format(filenum).zfill(8), "w")
14 filenum += 1
15 outfile.write(i+"\n")
16 itemcount += 1
17 outfile.close()
答案 0 :(得分:0)
我添加了" file_count"做我所假设的" filenum"正在做。这对你有用吗?对于早先的困惑感到抱歉;我正在关注变量名而不是定义。
file_count = 1
with open ("t.txt") as f:
probelist = [x.strip() for x in f.readlines()]
for i in probelist:
if not itemcount % filesize:
file_name = str(file_count) + ".txt"
outfile = open(file_name, "w")
file_count += 1
filenum += 1
outfile.write(i+"\n")
itemcount += 1
outfile.close()
答案 1 :(得分:0)
您可以使用itertools.islice
使用filesize
获取enumerate
切片,以获取每个文件的唯一名称,将1
作为开始枚举以开始编制索引在1
:
from itertools import islice
with open("t.txt") as f:
for ind, sli in enumerate(iter(lambda:list(islice(f,filesize)),[]),1):
with open("{}.txt".format(ind),"w") as out:
out.writelines(sli)