Python Os、glob、cv模块整理

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)

你可能感兴趣的:(Python Os、glob、cv模块整理)