如何检测用户何时关闭文件?

2024-06-26 03:55:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个Python程序,用户可以在其中向文件中输入文本。在他们关闭并保存文件后,我想打印它的内容。如何检测用户何时保存并关闭了文件?你知道吗

这是我用来打开文本文件的代码。你知道吗

def opentextbox():
    login = os.getlogin()
    file1 = open('C:/Users/'+login+'/enteryourmessagehere.txt', 'a')
    file1.close()
    subprocess.call(['notepad.exe', 'C:/Users/'+login+'/enteryourmessagehere.txt'])

opentextbox()

Tags: 文件代码用户文本程序txt内容os
2条回答

您可以在这里使用多线程。创建一个线程,如下所示:

import threading
thread1 = threading.Thread(target=function[, args=arguments])

函数可以是这样的:

import time
def function(file_handle):
  while 1:
    time.sleep(2) # Put your time in seconds accordingly
    if file_handle.closed:
      print "User closed the file"

并在主函数运行时在后台运行此线程。你知道吗

或者你可以创建另一个线程,如果你愿意的话,把剩下的代码放在那里,同时运行这两个线程,你就完成了。你知道吗

您可以使用subprocess.check_output()而不是subprocess.call(),因为subprocess.check_output()等待程序退出。要获取文件的内容,可以使用file.read()。您的代码应该是这样的:

def opentextbox():
    login = os.getlogin()
    subprocess.check_output(["notepad.exe", os.path.join("C:/Users", login, "enteryourmessagehere.txt")])
    file1 = open("enteryourmessagehere.txt", "r")
    contents = file1.read()
    print(contents)

我删除了你的file1 = open(...)file1.close()行,因为它们毫无用处。你没有对文件做任何操作,因此你没有理由打开它。如果目的是确保文件存在,那么可以使用os.path.isfile()。它不仅要检查文件是否存在,还要检查它是否是一个文件。你知道吗

相关问题 更多 >