如何让Python代码等待完成文件编辑

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

[在此处输入图像描述][1]我希望我的 python 代码等到我完成文件编辑后,然后我希望他获取我编辑的数据。

我尝试使用一个简单的行: x = input() 但它不起作用,我也尝试运行一段时间直到完成也不起作用,现在我尝试使用 popen 但我不好我有例外,但我不知道为什么

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"
    f = open(edit_file_path, "w")
    f.write(curr_data)

    enter = input("The file is ready to be edited. Open it, edit save and close and hit Enter.")
    
    f.close()
python multithreading file popen p2p
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.