在python中创建的文件应该打印错误消息[重复]
Posted
技术标签:
【中文标题】在python中创建的文件应该打印错误消息[重复]【英文标题】:File created in python where error message should be printed instead [duplicate] 【发布时间】:2020-07-03 03:33:48 【问题描述】:我正在使用 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+')不会覆盖以前的内容但如果文件不存在则不创建文件的文件?
【问题讨论】:
如果文件还不存在,不创建文件有什么意义? IDK @mkrieger1 - 我在其他地方已经有了一个功能。 ?????? 有点。我只是不知道这是一种方法。 ┐(´•_•`)┌@mkrieger1 您的代码使用了未定义的“entryB”。那应该是“entryA”还是您的代码不完整? 'windowa' 未定义,您的问题不需要。请参阅***.com/help/minimal-reproducible-example 关于编写要发布的代码。 【参考方案1】:尝试类似:
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()
【讨论】:
第一个工作正常。我只需要删除尝试,因为它仍然没有插入错误消息,但我已经修复了。谢谢你的帮助:)以上是关于在python中创建的文件应该打印错误消息[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将您在 python 中创建的 .wav 文件保存到指定目录?
在 python 中打印出文本文件会给出错误消息 -charmap_decode(input,errors,decoding_table) [重复]
在 Windows 资源管理器中看不到在 android 中创建的文件 [重复]