Python技术问询:如何在SQL数据库行全部打印后触发输入操作
解决Python循环打印SQL行后再触发输入提示的问题
嘿,我帮你梳理下问题根源:你现在把用户输入、清屏这些交互逻辑都塞到了打印行的循环内部,所以才会每打印一行就触发一次输入。咱们只需要把循环的职责聚焦在「打印所有数据行」上,等循环跑完再处理后续的交互就行。
修改后的代码示例
import time import os # (此处省略数据库连接、查询获取adminu_data的代码) finally: # 关闭数据库连接 if(connection): cursor.close() connection.close() # 先打印表头 print("ID, NUMBER, APP-LAUNCH-TIME, REGISTERD-TIME") # 循环仅负责打印所有行,保留延时需求 for rows in adminu_data: print("Registered. ", rows) time.sleep(5) # 所有行打印完成后,再执行交互逻辑 input("\n* Enter anything to continue... ") # Windows用cls清屏,Linux/macOS替换为clear os.system('cls' if os.name == 'nt' else 'clear') input("Enter anything to return to main menu") # 这里可以添加返回主菜单的逻辑,比如调用主菜单函数main_menu()
关键调整说明
- 拆分循环与交互逻辑:把
input()、os.system()从for循环中移出,让循环只做遍历打印的工作,确保所有行都打印完毕后才进入下一步交互。 - 移除多余的continue:原来的
continue完全没必要,它会打乱循环的正常遍历流程,删掉后逻辑更清晰。 - 适配跨平台清屏:如果你的代码需要在不同系统运行,加入系统判断可以避免清屏命令失效的问题。
这样修改后,程序会先按要求打印完所有SQL行(每行间隔5秒),再触发输入提示,清屏后引导返回主菜单,完全符合你的需求。
内容的提问来源于stack exchange,提问作者DzITC
相关产品推荐
相关产品推荐

