os模块
os模块主要是涉及文件处理
os.listdir(dirname):列出dirname下的目录和文件
os.getcwd():获得当前工作目录
os.curdir:返回当前目录('.')
os.chdir(dirname):改变工作目录到dirname
os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
os.path.isfile(name):判断name是不是一个文件,不存在name也返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.getsize(name):获得文件大小,如果name是目录返回0
os.path.abspath(name):获得绝对路径
os.path.abspath('test.csv')
'C:\\Python25\\test.csv'
os.path.normpath(path):规范path字符串形式
os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
os.path.splitext():分离文件名与扩展名
os.path.join(path,name):连接目录与文件名或目录
os.path.basename(path):返回最后的文件名
os.path.split('c:\\csv\\test.csv')
('c:\\csv', 'test.csv')
os.path.split('c:\\csv\\')
('c:\\csv', '')
os.path.dirname(path):返回文件路径
os.path.dirname('c:\\csv\test.csv')
'c:\\'
os.path.dirname('c:\\csv')
'c:\\'
glob模块
glob.glob
返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。下面是使用glob.glob的例子:
import glob
#获取指定目录下的所有图片
print glob.glob(r"E:/Picture/*/*.jpg")
#获取上级目录的所有.py文件
print glob.glob(r'../*.py') #相对路径
glob.iglob
获取一个可遍历对象,使用它可以逐个获取匹配的文件路径名。与glob.glob()的区别是:glob.glob同时获取所有的匹配路径,而glob.iglob一次只获取一个匹配路径。这有点类似于.NET中操作数据库用到的DataSet与DataReader。下面是一个简单的例子:
import glob
#父目录中的.py文件
f = glob.iglob(r'../*.py')
print f
for py in f:
print py
cv模块
cv模块相当于OpenCV在python上一个包,下面一段程序用到了cap = cv.VideoCapture(fn)
ret,frame = cap.read()
读取视频数据和 cv.imwrite
存取图片数据。
def save_img(dname, fn, i, frame):
cv.imwrite('{}/{}_{}_{}.png'.format(
out_dir, os.path.basename(dname),
os.path.basename(fn).split('.')[0], i), frame)
out_dir = 'E:/images'
if not os.path.exists(out_dir):
os.makedirs(out_dir)
for dname in sorted(glob.glob('E:/毕设/数据集/datasize caltech/set*')):
for fn in sorted(glob.glob('{}/*.seq'.format(dname))):
cap = cv.VideoCapture(fn)
i = 0
m=0;
while True:
ret,frame = cap.read()
if not ret:
break
save_img(dname, fn, i, frame)
i += 1
print(fn)