Python中创建的文件,应该在其中打印错误消息。
Python中创建的文件,应该在其中打印错误消息。
这个问题已经在这里有了答案:
我用Python Idle制作了一个文件编辑器。我有一个部分,如果所请求的文件不存在,它将在文本框(textA)中插入“不存在这样的文件”的错误消息。但是,不是给出错误消息,而是创建一个文件。我的代码是:
def addtofile(): name = entryA.get() try: file = open(name, "a") content = entryB.get() file.write(content) file.close() windowa.destroy() start() except: content = "No such file exists" textA.delete(0.0, END) textA.insert(END, content)
我使用“a”打开文件,以便不会擦除之前的内容。我认为问题在于我打开文件的方式。你能告诉我如何打开文件(我知道“a”,“r”,“w”和“w +”)?它不会覆盖以前的内容,但如果没有文件,也不会创建文件吗?
admin 更改状态以发布 2023年5月20日
尝试这样做:
from os.path import isfile def addtofile(): name = entryA.get() try: if isfile(name): file = open(name, "a") content = entryB.get() file.write(content) file.close() windowa.destroy() start() else: print("no file in path exists") except: content = "No such file exists" textA.delete(0.0, END) textA.insert(END, content)
这是基于假设name
返回一个文件名以及需要保存文件的路径。否则,该文件将保存在调用代码的位置。
更好的选择是查找文件所在目录的路径以及文件是否存在。
类似以下方式的操作:
import os from os.path import isfile def open_file(path_to_directory): """Return file descriptor for file""" if os.path.exists(path_to_directory): if isfile(path_to_directory): print('File in path Found') with open(path_to_directory) as c_file: return c_file else: print('File not found.') raise FileNotFoundError(path_to_directory) else: print('Path to Directory of File not found.') raise NotADirectoryError(path_to_directory)
在您的代码中使用该函数如下:
file = open_file(name) # .. Operations file.write() file.close()