2024-04-23 06:56:57 发布
网友
有没有一个选项可以传递open()在试图写入不存在的文件时导致IOerror?我使用python通过符号链接读写块设备,如果链接丢失,我希望引发一个错误,而不是创建一个常规文件。我知道我可以添加一个检查文件是否存在并手动引发错误,但是如果存在,我更希望使用内置的东西。在
当前代码如下:
device = open(device_path, 'wb', 0) device.write(data) device.close()
每次执行检查都是一件麻烦事,但您始终可以包装open():
open()
import os def open_if_exists(*args, **kwargs): if not os.path.exists(args[0]): raise IOError('{:s} does not exist.'.format(args[0])) f = open(*args, **kwargs) return f f = open_if_exists(r'file_does_not_exist.txt', 'w+')
这是快速和肮脏的,所以它不允许用作:with open_if_exists(...)。在
with open_if_exists(...)
缺少一个上下文管理器困扰着我,所以这里是:
是的。在
open(path, 'r+b')
指定“r”选项意味着文件必须存在并且您可以读取。 指定“+”意味着您可以写,并且您将被定位在末尾。 https://docs.python.org/3/library/functions.html?#open
使用^{}或^{}检查文件是否存在。在
每次执行检查都是一件麻烦事,但您始终可以包装
open()
:这是快速和肮脏的,所以它不允许用作:
with open_if_exists(...)
。在更新
缺少一个上下文管理器困扰着我,所以这里是:
^{pr2}$是的。在
指定“r”选项意味着文件必须存在并且您可以读取。 指定“+”意味着您可以写,并且您将被定位在末尾。 https://docs.python.org/3/library/functions.html?#open
使用^{} 或^{} 检查文件是否存在。在
相关问题 更多 >
编程相关推荐