我正在使用以下代碼從帶有硬編碼頁眉和頁腳的 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結構時,您不需要顯式關閉文件。
添加回答
舉報
0/150
提交
取消