在python中编写和命名多个文件

时间:2015-09-28 22:04:53

标签: python

以下代码使用“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()

2 个答案:

答案 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)