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

当没有可从数据库 python 和 mysql 检索的记录时,如何修复写入文件硬编码的页眉/页脚

当没有可从数据库 python 和 mysql 检索的记录时,如何修复写入文件硬编码的页眉/页脚

慕娘9325324 2021-12-17 15:39:09
我正在使用以下代码从带有硬编码页眉和页脚的 MYSQL 数据库表中将数据写入 Python 文件:for record in cur.fetchall():    filteredrecord = (record[0] + "\t" + record[1])    print(filteredrecord)    feed_file = open("c:\\test\\test.txt", "w")    feed_file.write("Name" + "\t" + "Age" )    feed_file.write("\n" + (filteredrecord))    feed_file.write("\n" + "ENDOFFILE")    feed_file.close()当数据库表中存在记录时,这工作正常,但是当数据库表中不存在记录时,我从无中选择被写入我的文件,甚至是我的硬编码页眉和页脚。当记录存在时,我得到以下输出:当没有记录存在时,我希望将以下内容写入我的文件:当我的数据库表中没有记录时,如何将上述内容写入文件。谢谢
查看完整描述

1 回答

?
30秒到达战场

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

您拥有用于打开文件、写入页眉/页脚并再次关闭文件的完整代码,所有这些都在迭代查询返回的记录的 for 循环中。事实上,如果你有多个记录,它应该继续打开文件,用新记录覆盖内容,包括页眉/页脚,然后关闭文件。


您想要的是打开文件一次,写入标题,然后循环记录并写入每个记录,最后写入页脚并关闭文件。代码可能如下所示:


with open("c:\\test\\test.txt", "w") as feed_file:

    feed_file.write("Name" + "\t" + "Age" )


    for record in cur.fetchall():

        filteredrecord = (record[0] + "\t" + record[1])

        print(filteredrecord)

        feed_file.write("\n" + (filteredrecord))


    feed_file.write("\n" + "ENDOFFILE")

请注意,在使用该with结构时,您不需要显式关闭文件。


查看完整回答
反对 回复 2021-12-17
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信