为了账号安全,请及时绑定邮箱和手机立即绑定

如何输出具有不同信息的多个文件?

如何输出具有不同信息的多个文件?

慕后森 2022-01-18 21:03:38
我正在尝试从两个不同的文件中读取信息。第一个文件,“数据库”,是一个包含人名和关于这些人的不同部分信息的文件。每个人(和他们的信息)都用行与其他人分开。第二个文件“模板”是带有编号占位符的垃圾邮件模板。我的目标是将数据库的信息部分读入模板中编号的占位符,并为每个人(数据库中的 3 人)输出一个文件。因此,我应该有 3 个输出文件。database = open("database", "r")template = open("template", "r")outfile1 = open("junk1", "w")outfile2 = open("junk2", "w")outfile3 = open("junk3", "w")for line in database:    part = line.split("|")    title = part[0] #replaces #1    firstname = part[1] #replaces #2    lastname = part[2] #replaces #3    address = part[3] #replaces #4    city = part[4] #replaces #5    state = part[5] #replaces #6    zipcode = part[6] #replaces #7for line in template:    string = line    for r in (("|1|",title),("|2|", firstname),("|3|", lastname),("|4|", address),("|5|", city),("|6|", state),("|7|", zipcode)):        string = string.replace(*r)    outfile1.write(string)    outfile2.write(string)    outfile3.write(string)          outfile1.close()outfile2.close()outfile3.close()database.close()template.close()我希望它输出到 3 个不同的文件。它目前输出 3 个文件,但每个模板输出仅包含最后一行的名称和信息。我需要第一个文件有模板,其中填写了第一人的信息,第二个文件包含第二个人的信息,第三个文件包含第三个人的信息。
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

您可以使用zip()从数据库和文件中获取数据,您必须在其中写入这些数据。


它可能是这样的


database = open("database", "r")


# read all to memory to use it many times in `for` loop

template = list(open("template", "r"))


outfile1 = open("junk1", "w")

outfile2 = open("junk2", "w")

outfile3 = open("junk3", "w")


for line, output in zip(database, [outfile1, outfile2, outfile3]):

    part = line.split("|")

    title = part[0] #replaces #1

    firstname = part[1] #replaces #2

    lastname = part[2] #replaces #3

    address = part[3] #replaces #4

    city = part[4] #replaces #5

    state = part[5] #replaces #6

    zipcode = part[6] #replaces #7


    for string in template:

        for r in (("|1|", title),("|2|", firstname),("|3|", lastname),("|4|", address),("|5|", city),("|6|", state),("|7|", zipcode)):

           string = string.replace(*r)

        output.write(string)


outfile1.close()

outfile2.close()

outfile3.close()

使用zip()第一个文件从数据库中获取第一行并使用第一个数据填充模板并保存在第一个文件中,然后使用第二个文件从数据库中获取第二行并使用第二个数据填充模板并保存在第二个文件中,等等。


查看完整回答
反对 回复 2022-01-18
  • 1 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号