跑深度学习代码时,都是用python,没有系统学习过python,就遇到什么函数学习什么函数并记录一下。
一. python基本数据类型
二. python处理txt文件
三. python处理文件夹文件
四. python和cv2
五. python内置函数
一. python基本数据类型
int;boolean;str;list[];tuple();dict{};set;
list列表参考,它的元素可以是数字,布尔,元组,字典等,而且元素是可以修改的。
元组tuple:元素特征和list一样,但不能修改
字典:每个键和值之间用:隔开,每对键值之间用,隔开,值可以是任意类型,键是不可变类型。
集合:存储无序的不重复序列。
二. python处理txt文件
- 读取txt文件的内容
path="./1.txt"
with open(path,'r') as f: # 打开文本
for line in f:
value=line[:-1] # 删除换行符,换行符虽然是\n但是我们认为是一个字符
print(value)
另一种处理txt文件方法:
f=open(path,'r')
for line in f:
value=line[:-1]
print(value)
r:只读方式
w:写入方式,写入可覆盖
a:在原文件基础上继续写入,写入不覆盖以前的内容。
-
向文件中写数据
f.write(path,'w')
或者f.write(path,'a')
f.write(”\n“)
写入一个数据后,想换行写这句话
f.close()
写完数据后,记得close -
获取txt文件中某一行的内容
import linecache
the_line=linecache.getline(path,1) # 获取第一行内容
txt中的按照第一行,第二行顺序递增
三. python处理文件夹文件
cwd =os.getcwd()
获得当前路径os.listdir(path)
循环处理文件夹下的所有文件会用到
dir="...../images"
for filement in os.listdir(dir):
print(filement)
逐个文件读取了文件的名字,1.jpg,2.txt…等所有文件的名字
- 处理图片文件:
这只是获取图片的名字,若是想读取图片需要借助opencv
import cv2
cv2.imread(image_path)
处理完的image,想要将新的图片newImage保存到另一个文件夹下:
import cv2
image_path="./1.jpg"
cv2.imread(image_path)
x=image_path.split("/")[-1] # 获得图片的名字
cv2.imwrite("./2/{}.jpg".format(str(x)) , newImage)
循环处理图片文件:
import glob
import cv2
for jpgfile in glob.glob(r'home/dlut/*.jpg'):
img_ori=cv2.imread(jpgfile)
os.path.join(path1,path2)
路径拼接,path1/path2f.sort()
将文件夹下的文件按顺序处理
f=os.listdir(dir)
f.sort()
for filement in f:
print(filement)
-
os.walk(文件夹)
用于遍历文件下的所有文件
for path,dir,filelist in os.walk(".../Test"):
其中path:当前文件夹以及子文件夹的路径
dir:所有子文件的名称
最主要的是filelist是所有的文件list,一般就用这个。for循环好多参数的时候,后面往往是一个元组:
[(1,2),(3,4),(5,6)]
第一次:a=1,b=2
第二次:a=3,b=4
第三次: a=1,b=2 -
os.rename(src,dst)
src:要修改的目录名
dst:修改后的目录名
注意必须是目录名,也就是必须有路径信息 -
os.remove(文件path)
删除指定路径文件
四.python和cv2
import cv2
cv2.imread(path)
读取图片,path必须有图片的路径和名字cv2.imwrite(file,img)
file:图片路径及名字
img:要保存的图片cv2.resize(src,dsize是一个(x,y),后面的可选)
cv2.resize(src,(224,224))
五. python内置函数
- enumerate() 函数
参考
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print i, element
0 one
1 two
2 three
- python包中的
__init__.py
文件的作用:
参考博客
实际上是为了精简导入路径。