如何让Python输入等待关键字退出输入模式[关闭]

问题描述 投票:0回答:1

我希望我的 Python 代码等到我在编辑文件时键入“完成”,然后将数据写入文件。

我尝试使用简单的线条:

x = input()
,但它没有采用多行。

我还尝试使用 while 循环运行直到我输入“完成”,但没有成功:

edit_file_path = f"files/{self.computer.finger_table.id}/edit_file"
f = open(edit_file_path, "w")
f.write(curr_data)

finish = "no"

while finish != "finish":
finish = input("Enter finish when you finish")

f.close()
python file
1个回答
0
投票
  1. Python 中获取多行输入的方法有很多,thisthis 问题有一些很好的答案。

  2. 您应该使用追加模式,而不是冗余写入现有数据。

记住这些,您的代码可以修改为如下所示:

edit_file_path = f"files/{self.computer.finger_table.id}/edit_file"

content = []
print("Hit Ctrl+D or Ctrl+Z (Windows) to exit editing")
while True:
    try:
        line = input()
    except EOFError:
        break
    content.append(line)
with open(edit_file_path, 'a') as fl:
    fl.write('\n'.join(content))

如果您需要字符串“finish”作为停止词,

edit_file_path = f"files/{self.computer.finger_table.id}/edit_file"

content = []
print("Type 'finish' when you finish")
while True:
    line = input()
    if line == 'finish':
        break
    content.append(line)
with open('text.txt', 'a') as fl:
    fl.write('\n'.join(content))

但这将不允许用户输入“完成”一词作为一行。

© www.soinside.com 2019 - 2024. All rights reserved.