1. 列表list操作
排序
2. 文件相干的操作
门路和文件名拆散
文件复制
glob获取文件绝对路径
前缀后缀判断
3. 字符串str操作
宰割切片
4. 其余问题
自定义的py文件import后找不到门路
5. 注意事项
文件命名
6. 一些操作合集
判断数据类型
汇合set
利用bool矩阵进行索引
执行字符串表达式
filter()过滤序列
1. 列 表lis t操 作
排序
留神 :文件夹读取相干的最好都先排序,否则zip排序出BUG不好找
文件读取list往往为乱序的,为了将img和xml对应,能够对两个list都采纳排序函数
如 img_files.sort(),而后再将两者zip后进行遍历。
list.sort( )(返回值为None, 可传递参数reverse=True逆序排序)sorted( list )
2. 文 件相干的操作
门路和文件名拆散
办法:
os.path.split( )os.path.splitext( )
例子:
file_path = "D:/test/test.py"(filepath,tempfilename) = os.path.split(file_path)
('D:/test', 'test.py')
(filename,extension) = os.path.splitext(tempfilename) ('test',
'.py')
文件复制
import shutilshutil.copyfile('C: \1.txt' , 'D: \1.txt')
glo b 获 取文件绝对路径
files = sorted( glob.glob( os.path.join( path, ' *. ' ) ) )
'.'是匹配项,可替换为.jpg .txt等制订特定类型,,从而简略获取特定类型的文件绝
对门路。 参考链接 :https://www.jianshu.com/p/542...
前缀后缀判断
str.startswith( 'this' )str.endswith('.jpg')
3. 字 符串str 操 作
宰割切片
在str中去掉字符‘a’:
str.strip('a')
str以所有的 'a' 字符为界进行切割返回切片,留神'a'也没有了
str.split('a')
4. 其 他问题
自定义的py文 件im port后 找不 到门路
多半是 __init__.py 文件文件没写或者不对, 入口
5. 注 意事项
文件命名
py文件起名不要和pip package一样 ,不然运行的时候会报错,找都找不到(因为
import的时候会优先从本地import而不是pip)
6. 一 些操作合集
判断数据类型
isinstance(feature_maps,list)
汇合se t
利用好set的操作能够简化程序,并且减速运算,如交并补差等,加入: set指令大全
然而留神: 汇合中的元素不会有反复 !!
a=[ 1,1,2,3,4,5,5]b=set (a)
b
{1, 2, 3, 4, 5}
利 用bool矩 阵进行索引
(1) i = ( pred [:, 4] > conf_thres ) & ( pred [:, 2:4] >min_wh ). all (1) & torch .isfinite (pred ). all (1) pred =
pred [i]
(2) class_conf = class_conf [i]
(3)dc = pred [pred [:, -1] == c] # select class c
多说一句,pytorch的torch.where反对很多运算了,切实没有再用bool判断(因为这个可能导致梯度计算的矛盾)
执行字符串表达式
eval()和exec()
应用场景:
1.字符串计算式是无奈别辨认成咱们罕用的float型的,所以如配置文件等地读取出
来是个字符串,应用eval()能够间接将字符串进行计算失去后果。
2.须要在程序中调用执行命令
区别:能够看出,eval和exec类似度很高,都是执行字符串表达式,然而 eval() 是
一个函数,须要变量来接管函数的执行后果;而exec()的字符串外部变量和外界相
同,能够间接执行,返回None.
*号省略变量
单引号为多变量, ** 为多元素字典变量,例如:
for i, (*pbox, pconf, pcls_conf, pcls) in enumerate(pred)
非凡:多返回值的疏忽
img, *_ = letterbox(img0, new_shape=self.img_size)
filt e r()过 滤序列
filter(function, iterable)
将可迭代对象传入这个函数,而后外部一一将迭代器迭代到函数中,返回bool迭代
器。俩字好用,参考 教程(https://www.runoob.com/python...) 。给个例子:
def is_odd(n):return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)