fileutils

文件实用工具。

1.8 版本中添加。

oslo_utils.fileutils.compute_file_checksum(path, read_chunksize=65536, algorithm='sha256')

计算文件内容的校验和。

参数:
  • path – 文件路径

  • read_chunksize – 一次从文件中读取的最大字节数。默认值为 65536 字节或 64KB

  • algorithm – 要使用的哈希算法名称。例如,‘md5’、‘sha256’、‘sha512’ 等。默认值为 ‘sha256’。请参阅 hashlib.algorithms_available 以获取可用算法

返回值:

校验和的十六进制摘要字符串

3.31.0 版本中添加。

oslo_utils.fileutils.delete_if_exists(path, remove=<built-in function unlink>)

删除文件,但忽略文件未找到错误。

参数:
  • path – 要删除的文件

  • remove – 可选函数,用于删除传递的路径

oslo_utils.fileutils.ensure_tree(path, mode=511)

创建目录(以及所需的任何祖先目录)

参数:
  • path – 要创建的目录

  • mode – 目录创建权限

oslo_utils.fileutils.is_json(file_path)

检查文件是否为 json 类型。

此函数尝试使用 json.loads() 加载输入文件,如果发生 ValueError 则返回 False,否则返回 True。

参数:

file_path – 要检查的文件路径

返回值:

bool

oslo_utils.fileutils.is_yaml(file_path)

检查文件是否为 yaml 类型。

此函数尝试使用 yaml.safe_load() 加载输入文件,如果可以加载则返回 True。因为每个 json 文件都可以用 yaml 加载,所以如果文件可以使用 json.loads() 加载,则表示它是 json 文件,因此此函数返回 False。

参数:

file_path – 要检查的文件路径

返回值:

bool

oslo_utils.fileutils.last_bytes(path, num)

从文件末尾返回 num 个字节和未读取字节数。

返回一个元组,其中包含来自文件的内容和读取开始点之前出现在文件中的字节数。内容最多为 num 个字节,从文件末尾获取。如果文件小于 num 个字节,则返回文件的全部内容。

参数:
  • path – 要读取的文件路径

  • num – 要返回的字节数

返回值:

(data, unread_bytes)

oslo_utils.fileutils.remove_path_on_error(path, remove=<function delete_if_exists>)

保护想要以原子方式对 PATH 进行操作的代码。任何异常都将导致删除 PATH。

参数:
  • path – 要使用File

  • remove – 可选函数,用于删除传递的路径

oslo_utils.fileutils.write_to_tempfile(content, path=None, suffix='', prefix='tmp')

创建一个包含数据的临时文件。

创建一个包含指定内容的临时文件,并指定文件名后缀和前缀。临时文件将在默认位置创建,或者在目录 path 中创建(如果它不为 None)。path 及其父目录将在不存在时创建。

参数:
  • content – 要写入文件的字节字符串

  • path – 与 mkstemp 的 ‘dir’ 参数相同

  • suffix – 与 mkstemp 的 ‘suffix’ 参数相同

  • prefix – 与 mkstemp 的 ‘prefix’ 参数相同

例如:它可以在数据库测试中用于创建配置文件。

1.9 版本中添加。