Python 笔记
Apr 02, 2022在 python 脚本头,备注
对于 mac 和 win 是一致的
#! /usr/bin/env python3
修改权限
$ chmod +x hello.py
就可以将此脚本当作程序运行
文件头添加,指明用 python3 运行
#!/usr/bin/python3
c = a // b含义为 a 除以 b,并去除小数精度。但结果不一定是整数,以分母分子的类型决定。
c = 11 // 2
# c = 5
c = 11.0 // 2
# c = 5.0
问题:
pycharm 内的 venv 在发布后如何使用
venv 的 #! 不能使用相对路径
指定 python 的版本还有什么方法
优化 shell 中的输出显示,而不是一行行输出 https://blog.csdn.net/shida_csdn/article/details/106804077
优化stdout 输出流处理,目前只会一次性读取处理,后期可能会卡
复制文件方法对比

# 不包括元数据
shutil.copy(os.path.join(root, file), new_file_path)
# 包括元素据
shutil.copy2(os.path.join(root, file), new_file_path)
md5 是计算文件内容的校验码,对于内容一致的文件,例如复制粘贴,md5 会保持一致。但是 zip 特殊,它的内容就是文件的集合,也就会包含文件的 metedate 元数据。
元数据有
在计算 zip 文件 md5 的时候,可能会因为 zip 内 文件的元数据变动,导致文件 zip md5 不一致,所以有必要在复制文件的时候,保证元数据一致,即用 copy2。
但是有一点问题,在项目中版本控制软件,如 svn 中是不会同步元数据的,也就是说在同一台 pc 中,重新 checkout,压缩后文件的 zip md5 还是会不一致。但目前项目中的任务不会跨 pc 处理,暂不考虑。
shutil.copytree 复制目录
如果目标目录相当于新名字,如果父路径不存在,会顺便创建。dirs_exist_ok = false 的话,如果目标目录已存在,会报错。
对于已存在目录的文件,不会移除
{
"source path":"E:/Yimi_UI\u8d44\u6e90",
}
必须添加ensure_ascii=False 和 encoding='utf-8' 才能保证输出json文件中文正常显示
version_str = json.dumps(new_log, sort_keys=False, indent=4, separators=(',', ':'), ensure_ascii=False)
file_obj = open(os.path.join(".", log_file_name), "w", encoding='utf-8')
{
"source path":"E:/Yimi_UI资源",
}
需求
清空目录
更好的json存取方式,目前要考虑编码和序列化问题
判断路径名称是目录还是文件
可视化图标使用准则
https://next.startdt.com/charts/column.html
Comments