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

标签 python mysql

我使用以下代码将数据从带有硬编码页眉和页脚的 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()

当数据库表中存在记录时,这种方法工作得很好,但是当数据库表中没有记录时,我从没有任何内容写入我的文件中进行选择,甚至包括我的硬编码页眉和页脚。

当存在记录时,我得到以下输出:

output when records on db table present

当没有记录时,我希望将以下内容写入我的文件:

output needed when no records present on db table

当我的数据库表中没有记录时,如何将上述内容写入文件?

最佳答案

您拥有用于打开文件、写入页眉/页脚以及再次关闭文件的完整代码,所有这些都在迭代查询返回的记录的 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 结构时不需要显式关闭文件。

关于python - 当没有可从数据库 python 和 mysql 检索的记录时,如何修复写入文件硬编码页眉/页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55369619/

相关文章:

php - 使用 JSON 将 Web 内容提取到 Apache Cordova/Phonegap 应用程序中

mySQL 5 个表的多重联接出现超时错误

python - 如何缓存我的 SQL 结果,这样我就不必重复调用 SQL 来获取 Dash 图的数据?

python - 如何将相同类别的列置于 Pandas 数据框中的单个标题下?

python - 进行多条件求和的循环

php - codeigniter如何在函数内的模型页面中回显获取的值

python - 如何在 Python 中将不可读的 ^A 写入输出文件?

python - 拆分list的python列表

c# - 将多个数据插入数据库时​​可能存在的风险

mysql - mysql存储过程的正确写法