如何结束python3.11中提供输入的无休止循环

8e2ybdfx  于 2023-04-22  发布在  Python
关注(0)|答案(1)|浏览(176)

我正在做一个终端模拟器,它可以创建、修改、读取和删除文件。创建、读取和删除函数都可以正常工作,但是我在使创建函数工作到只需要调用一次而不是每行调用一次的程度时遇到了一个问题。
我试着创建一个while循环,并尝试添加一个热键来打破循环,但每当我测试热键的想法时,我都无法实际运行程序的其余部分,因为脚本会在监听热键被按下时挂起。
我的循环是这样的

while True:
        try:
            f = open(fileName, 'a')
            while running == True:
                f.write(input('Enter text here:\n')+'\n')
            f.close
            break
        except:
            print('\nFile does not exist')
            break

我会运行它,它将允许输入代码行,但我不能保存和关闭文件后,我把我想要的行数。

myzjeezk

myzjeezk1#

在查看了@Brian61354270的评论后,我发现一种方法是将整个块放入with上下文管理器中,同时仍在while循环中
最终我得到了这个,看起来很管用。

while True:
        with open(fileName, 'a') as f:
            try:
                f.write(input()+'\n')
            except KeyboardInterrupt:
                break

在程序中我根本不需要KeyboardInterrupt,因为除非我正在编辑文件,否则我有一个内置的exit函数,它只调用exit()

相关问题