我正在向我的 Python 代码添加类型提示,并且想知道对加载的 YAML 文件进行类型提示的正确方法是什么,因为它是任意数量字典的字典。
有没有比类型提示更好的方法返回加载的 YAML 文件Dict[str, Dict[str, Any]]?
这是函数:
def load_yaml(yaml_in: str) -> Dict[str, Dict[str, Any]]:
return yaml.load(open(yaml_in), Loader=yaml.FullLoader)
Run Code Online (Sandbox Code Playgroud)
以下是正在加载的 YAML 文件的示例:
VariableMap:
var1: 'time'
var2: 'param_name'
GlobalVariables:
limits:
x-min:
x-max:
y-min:
y-max:
Plots:
plot1:
file:
x_data: 'date'
y_data: [{param: 'param1', label: "param1", color: 'red', linestyle: '-'},
{param: 'param2', label: "param2", color: 'black', linestyle: '--'}]
labels:
title: {label: 'title', fontsize: '9'}
x-axis: {xlabel: 'x-label', fontsize: '9'}
y-axis: {ylabel: 'y-label', fontsize: '9'}
limits:
x-min: 0
x-max: 100 …Run Code Online (Sandbox Code Playgroud) tar在 Unix 和tarfilePython 中使用 tar 压缩文件夹导致文件大小不同的根本区别是什么?
在下面的示例中,存在 8.2 MB 的差异。我目前使用的是 Mac。本示例中的文件夹包含一堆用于测试目的的随机文本文件。
tar -cvf archive_unix.tar files/
python -m tarfile -c archive_pycli.tar files/ # using Python 3.9.6
-rw-r--r-- 1 userid staff 24606720 Oct 15 09:40 archive_pycli.tar
-rw-r--r-- 1 userid staff 16397824 Oct 15 09:39 archive_unix.tar
Run Code Online (Sandbox Code Playgroud)