Python标准库os用法记录
今天看到一段代码:
video_name = os.path.splitext(os.path.basename(args.input))[0]
frame_folder = os.path.join('tmp_frames', video_name)
os.makedirs(frame_folder, exist_ok=True)
里面有很多os的用法,记录一下
(先附上一个转载的详细说明:os.path常用路径操作)
os.path.basename:找到最后一个"/"后面的元素,我做了一些实验 (注意最后一行是‘’)
>>> os.path.basename('/media/qiaohui/Real-ESRGAN/CODE_OF_CONDUCT.md')
'CODE_OF_CONDUCT.md'
>>> os.path.basename('/media/qiaohui/Real-ESRGAN')
'Real-ESRGAN'
>>> os.path.basename('/media/qiaohui/Real-ESRGAN/')
''
os.path.splitext: 分离文件名和扩展名,话不多说上图
>>> os.path.splitext('CODE_OF_CONDUCT.md')
('CODE_OF_CONDUCT', '.md')
>>> os.path.splitext('model.pth.tar')
('model.pth', '.tar')
>>> os.path.splitext('model.pth')
('model', '.pth')
所以看回第一行代码
video_name = os.path.splitext(os.path.basename(args.input))[0]
先用basename得到XXX.mp4,然后用splitext得到(‘XXX’,‘.mp4’),[0]取得’XXX’即为想得到的video name
接着os.path.join我想不用太多介绍,自动合成路径,也就是自动帮你加个’/‘,算了还是来个图吧
>>> os.path.join('tmp_frames','XXX')
'tmp_frames/XXX'
最后是os.makedirs,这个我也是昨天刚看见的用法,之前一直只知道os.mkdir,还是我孤陋寡闻了。。
其实区别只是os.makedirs创建多级目录,os.mkdir创建单级目录,如果只建一个比如说,666文件夹,那只需要os.mkdir(‘666’);如果要建多级,比如在666下建一个888,那就是makedirs(‘666/888/’),后面那个exist_ok的参数如果是True,那如果文件已经存在就不会出现报错,如果是False就会报错
后续碰到其他的os用法还会继续更新在这里