python3文件打开写入异常处理
python3 file open write exception handling
下面的代码是否提供了正确的异常处理。我的目标是,除非文件已成功打开并确保文件已关闭,否则不要尝试 file.write() 。我不关心文件未打开或文件未写入的确切错误。
Python 版本 3.6.9。 OS Linux.
data = "Some data"
filename = "test.txt"
try:
file = open(filename, 'w+')
except:
print("Error opening file")
else:
try:
file.write(data)
except:
print("Error writing to file")
finally:
file.close()
你应该;始终清楚地说明您要处理的异常。
这里是使用上下文处理程序的重构,因此您可以避免显式 finally: close
data = "Some data"
filename = "test.txt"
try:
with open(filename, 'w+') as file:
try:
file.write(data)
except (IOError, OSError):
print("Error writing to file")
except (FileNotFoundError, PermissionError, OSError):
print("Error opening file")
您可能需要列举更多例外情况;我把这些从头顶上敲下来。
下面的代码是否提供了正确的异常处理。我的目标是,除非文件已成功打开并确保文件已关闭,否则不要尝试 file.write() 。我不关心文件未打开或文件未写入的确切错误。
Python 版本 3.6.9。 OS Linux.
data = "Some data"
filename = "test.txt"
try:
file = open(filename, 'w+')
except:
print("Error opening file")
else:
try:
file.write(data)
except:
print("Error writing to file")
finally:
file.close()
你应该
这里是使用上下文处理程序的重构,因此您可以避免显式 finally: close
data = "Some data"
filename = "test.txt"
try:
with open(filename, 'w+') as file:
try:
file.write(data)
except (IOError, OSError):
print("Error writing to file")
except (FileNotFoundError, PermissionError, OSError):
print("Error opening file")
您可能需要列举更多例外情况;我把这些从头顶上敲下来。