高亮颜色说明:突出重点
个人觉得,:待核准个人观点是否有误
本篇博客涵盖以下内容:
- 文件和异常
- 测试代码
- Python算法与数据结构
- Python项目实践
文章目录
编写深度学习项目实验的代码时, 合理的脚本文件组织结构
Python代码阅读
代码阅读 要想快速了解一个.py脚本文件的功能与作用,可以先从def main()
方法开始看,看main()
中调用了哪些方法和建立了哪些类对象;然后去看下这些方法和类的API文档注释(docstrings);此外,还可以关注下main()
中print('提示')
中的一些提示;以及整个脚本文件中的description
字段;
-
Python项目代码结构 - 一只小小的寄居蟹 - 博客园 20180424
本博客主要内容包括:
一个Python项目的文件组织方式:bin, conf, core, database, lib, setup, log, doc, requirements, README, etc;
关于README.md;
关于requirements.txt和setup.py -
如何优雅的阅读 Python 代码 - 简书 20190320
本博客主要内容包括:格式化代码, 自动生成类型注解, 在类型注解的基础上执行静态检查发现错误, 找一个好的代码阅读器, 更美观的异常提示, 官方手册辅助查询工具;
Python代码调试
代码调试 关于代码测试:了解一些基本的测试知识,做一些基本的单元测试、功能测试、边界测试以及异常测试。
- ***说说Python中的单元测试 - Python测试开发 - SegmentFault 思否 20180514
- (待阅读)Python测试框架之pytest详解_lovedingd的博客 20190809
打印输出当前工作目录,
import os
print(os.getcwd()) # 返回当前工作目录
Python 输出 log 日志
- *** python + logging 实现日志输出及保存到文件_Runner1st的博客-CSDN博客 20190719
- 【Python】将控制台输出保存至文件(loguru)_Xavier Jiezou的博客-CSDN博客 20220301
Python库
查看 Python 包的路径:import tensorboard print(tensorboard.__file__)
;
pip install 命令
pip
是python环境的包管理工具,用它可以方便地管理第三方包,其功能类似于Linux系统下的yum或apt-get。
- Python Pip 参考手册 - pip install 命令 ( 一 ) - 简单教程,简单编程
Python Pip 参考手册 - pip install 命令 ( 二 ) - 简单教程,简单编程
Python Pip 参考手册 - pip install 命令 ( 三 ) - 简单教程,简单编程
Python Pip 参考手册 - pip install 命令 ( 四 ) - 简单教程,简单编程
Python处理文件
- os.sep, 路径中的分隔符
python中如何兼容 windows 和 linux 不同环境的操作系统路径_小土豆小洋芋的博客-CSDN博客 20220905 - Pathlib module in Python
代码: anaconda3/envs/my_gpu_py3/lib/python3.8/pathlib.py
pathlib — Object-oriented filesystem paths — Python 3.10.2 documentation - 获取文件路径和文件名,用于后面的存储
path_to_file = './data/images/val2017/1 (1).jpg' # 方式一 filedir = "/".join(path_to_file.split("/")[:-1]) # 获取文件路径 filename = path_to_file.split("/")[-1] # 获取文件名 # 方式二 from pathlib import Path path_to_file_ = Path(path_to_file) filedir_ = path_to_file_.parents[0] # <class 'pathlib.Path'> filename = path_to_file_.name # <class 'str'> filename_wo_suffix = path_to_file_.stem # <class 'str'>
- os.path.basename()
# Returns the final component of a pathname basename = os.path.basename(dic["file_name"]) # 例如,dic["file_name"]='/media/data/images/val2017/1 (1).jpg' # 则basename = '1 (1).jpg'
移动文件文件夹
-
判断文件是否存在, 若存在则删除
import os if os.path.exists(path_to_file_with_suffix): # 判断文件是否存在; 若存在, 则返回True; os.remove(path_to_file_with_suffix) # 删除文件
glog.glob(), 遍历文件
- python标准库之glob介绍 - luminousjj - 博客园 20180724
- glob.glob() 函数_薛定谔的AI-CSDN博客 20180713
- python 遍历文件夹下的所有文件 - 市丸银 - 博客园 20190929
- python获取文件后缀名及批量更新目录下文件后缀名的方法_python_脚本之家 20141111
glob.glob(str(p / '**' / '*.*'), recursive=True)
glob.glob(str(p / '*.*'), recursive=True)
Python 读写txt
Python 存储数据的方式及耗时对比
- 几种python存储数据(海量数据)的方式及读取时间对比_python 存储大量数据_祁彧w的博客-CSDN博客 20220826
- Python读取txt文件方法的速度对比和改进方案_财富自由之路的博客-CSDN博客 20200916
json.dumps()报错TypeError: Object of type float32 is not JSON serializable
20200906记:
import mmcv.fileio as mmcvfileio # C:/Users/lu/.PyCharm2019.2/system/remote_sources/-1468910861/-416239508/mmcv/fileio/io.py
mmcvfileio.dump(some_data, f'{path_to_recorddata}/some_data.json')
# ---------------------------分割线---------------------------
C:/Users/usrname/.PyCharm2019.2/system/remote_sources/-1468910861/-416239508/mmcv/fileio/handlers/json_handler.py
# Copyright (c) Open-MMLab. All rights reserved.
import json
from .base import BaseFileHandler
class JsonHandler(BaseFileHandler):
def load_from_fileobj(self, file):
return json.load(file)
def dump_to_fileobj(self, obj, file, **kwargs):
json.dump(obj, file, **kwargs)
def dump_to_str(self, obj, **kwargs):
return json.dumps(obj, **kwargs)
# ---------------------------分割线---------------------------
You are here because when you try to dump or encode Python set into JSON, you received an error,
TypeError: Object of type set is not JSON serializable
.
The built-in json module of Python can only handle Python primitives types that have a direct JSON equivalent. i.e., The fundamental problem is that the JSON encoder json.dump() and json.dumps() only knows how to serialize the basic types by default (e.g., dictionary, lists, strings, numbers, None, etc.). To solve this, we need to build a custom encoder to make set JSON serializable.
(待阅读) ***Python JSON Serialize Set 20200609
Python json dump(s) to Encode dict into JSON | Write JSON in file 20200609
Serialize and Deserialize complex JSON in Python | by Yuchen Zhong | Medium 20190114
在使用json.dumps时遇到报错TypeError: Object of type float32 is not JSON serializable_gqixf的博客-CSDN博客20180102
Big-O Efficiency of Python List Operators
Operation | Big-O Efficiency |
---|---|
index [] | O(1) |
index assignment | O(1) |
append | O(1) |
pop() | O(1) |
pop(i) | O(n) |
insert(i,item) | O(n) |
del operator | O(n) |
iteration | O(n) |
contains (in) | O(n) |
get slice [x:y] | O(k) |
del slice | O(n) |
set slice | O(n+k) |
reverse | O(n) |
concatenate | O(k) |
sort | O(n log n) |
multiply | O(nk) |
*** 3.6. Lists — Problem Solving with Algorithms and Data Structures | |
Python自带数据结构的运行效率_勇气与行动-CSDN博客 20170603 | |
*** Big O Notation and Algorithm Analysis with Python Examples | |
All You Need to Know About Big O Notation [Python Examples] 20191008 | |
python数据结构效率问题_qq_32796425的博客-CSDN博客 20170330 |
Python爬虫
Python爬虫爬取图片
看黑客是怎么爬取百度图片(动态页面) 20210125
https://mp.weixin.qq.com/s/xNTqBC-LYPiGHhcxhM54pA
python爬取“百度小姐姐” 20200523
https://mp.weixin.qq.com/s/hLShPVqigs7dgYGrfYdYFg
Python爬虫 | 批量爬取某图网站高质量小姐姐照片 20210119
https://mp.weixin.qq.com/s/QkboNzs-wrYWwuH7KSfY6A
Python爬虫爬取电影榜单上的电影信息
20210806记:
Learn_Spider_002.py
- Python爬取某瓣电影信息,一起看看关于电影信息!(文本)_哔哩哔哩_bilibili 20201214
- 【Python爬虫】 XPath 与 selector 的 获取_zhouwhui 的博客-CSDN博客 20200820
- python3爬虫系列11之xpath和css selector方式的内容提取介绍_空空说技术的博客-CSDN博客
- xxx
- 用一句话来解释,爬虫就是模拟客户端<浏览器, 手机APP>请求服务器的数据。不模拟的话,服务器可能不会返回数据给你。
- 爬虫案例的一般步骤:
- 确定数据所在的地址(分析<网页性质>);
- (伪装)通过代码请求地址数据,但返回的数据通常是多种类型的(js/css/img/etc);
- (xpath)解析数据; (鼠标右键"查看网页源代码"显示都是当前网页的静态数据。)
- 保存数据;
- 页面的循环爬取,通过对比不同页数的地址找到翻页的参数变化规律;
- 关于爬虫,看怎么请求,然后怎么解析html格式文件,或者html文件解析不了要去解析动态json文件;然后接下来怎么抓取需要的信息,怎么构造header;
Python list 和 numpy 实现 3-sigma 异常值剔除和异常值替换实例
- Python list 和 numpy 实现 3-sigma 异常值剔除和异常值替换实例_sdnuwjw的博客-CSDN博客 20201211
- 如何剔除数据中的异常值? - 知乎
- 异常数据4种剔除方法_4种常见异常值检测算法实现_weixin_39822493的博客-CSDN博客 20201121
问题记录
问题描述:
开始
原因分析:
开始
解决方案:
开始
“SyntaxError: invalid syntax”
问题描述:
Python运行程序报错"SyntaxError: invalid syntax";
原因分析:
- 粗心问题
忘记在 if , elif , else , for , while , class , def 末尾添加 冒号(😃; 误将 = 当成 == 使用; (), [] 等符号没有成对使用; - 版本问题
因为python2和python3是不兼容的, 所以一些可以在python2上运行的代码不一定可以在python3上运行, 可以尝试更换版本; - 路径问题
记得仔细查看自己的路径是否正确;
debug in VS Code, 无法 step into
问题描述:
debug in VS Code, 无法 step into, 提示如下问题,
Could not load source '<__array_function__ internals>': Source unavailable.
原因分析and解决方案:
在launch.json
中配置"justMyCode": false
即可,
# .vscode\launch.json
{
...,
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": false
}
]
}
VS Code - Python Debugging - Step into internal functions - Stack Overflow 20220721
二级标题
待补充
待补充
数学公式粗体
\textbf{}
或者
m
e
m
o
r
y
{\bf memory}
memory
数学公式粗斜体
\bm{}
摘录自“bookname_author”
此文系转载,原文链接:名称 20200505
高亮颜色说明:突出重点
个人觉得,:待核准个人观点是否有误
分割线
分割线
我是颜色为00ffff的字体
我是字号为2的字体
我是颜色为00ffff, 字号为2的字体
我是字体类型为微软雅黑, 颜色为00ffff, 字号为2的字体
分割线
分割线
##问题记录
问题描述:
开始
原因分析:
开始
解决方案:
开始
Markdown表格
方法 | 命令 | 备注 |
---|---|---|
内容 | 内容 | 内容 |
内容 | 内容 | 内容 |
为长文本指定列宽实现换行