我希望我的 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()
记住这些,您的代码可以修改为如下所示:
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))
但这将不允许用户输入“完成”一词作为一行。