一、o s模块的使用
import os
result = os.getcwd()
print(result)
os.chdir('/home/sy')
result = os.getcwd()
print(result)
open('02.txt','w')
open('/home/sy/下载/02.txt','w')
result = os.listdir('/home/sy')
print(result)
'''
环境变量就是一些命令的集合
操作系统的环境变量就是操作系统在执行系统命令时搜索命令的目录的集合
'''
result = os.getenv('PATH')
print(result.split(':'))
print(os.curdir)
print(os.pardir)
print(os.name)
print(os.sep)
print(os.extsep)
print(repr(os.linesep))
import os
path = './boys'
result = os.path.abspath(path)
print(result)
path = '/home/sy/boys'
result = os.path.dirname(path)
print(result)
result = os.path.basename(path)
print(result)
path = '/home/sy/boys'
result = os.path.split(path)
print(result)
var1 = '/home/sy'
var2 = '000.py'
result = os.path.join(var1,var2)
print(result)
path = '/home/sy/000.py'
result = os.path.splitext(path)
print(result)
path = '/home/sy/000.py'
result = os.path.isfile(path)
print(result)
result = os.path.isdir(path)
print(result)
path = '/initrd.img.old'
result = os.path.islink(path)
print(result)
import time
filepath = '/home/sy/下载/chls'
result = os.path.getctime(filepath)
print(time.ctime(result))
result = os.path.getmtime(filepath)
print(time.ctime(result))
result = os.path.getatime(filepath)
print(time.ctime(result))
filepath = '/home/sy/下载/chls'
result = os.path.exists(filepath)
print(result)
path = '/boys'
result = os.path.isabs(path)
print(result)
path1 = '/home/sy/下载/001'
path2 = '../../../下载/001'
result = os.path.samefile(path1,path2)
print(result)
import os
print(os.environ['PATH'])
os.environ['PATH'] += ':/home/sy/下载'
os.system('chls')
二、OS模块常用方法
import os, sys, stat
os与sys模块的官方解释如下:
os模块
os.linesep:用于在文件中分隔行的字符串
os.sep:表示默认的文件路径分隔符,windows为\, linux为/
os.pathsep:用于分隔文件路径的字符串
os.curdir:当前工作目录的字符串名称
os.pardir:(当前工作目录的)父目录字符串名称
os.walk(spath):用来遍历目录下的文件和子目录
os.listdir(dirname):列出dirname下的目录和文件
os.mkdir() : 创建目录
os.makedirs(): 创建目录,包含中间级目录
os.remove():删除文件,不能是目录
os.rmdir():删除空目录
os.removedirs(path):删除目录及其子目录
os.rename(src, dst) :修改文件名
os.renames(old, new):修改文件或目录名,包含中间级
os.chdir("/tmp"): 更改当前目录
os.chmod( "c:\\test\\buildid.txt", stat.S_IWRITE ): 去除文件的只读属性
os.chmod( path, flags ) # 给文件设置权限
path -- 文件名路径或目录路径。
flags -- 可用以下选项按位或操作生成, 目录的读权限表示可以获取目录里文件名列表,
执行权限表示可以把工作目录切换到此目录 ,删除添加目录里的文件必须同时有写和执行权限 ,
文件权限以用户id->组id->其它顺序检验,最先匹配的允许或禁止权限被应用。
stat.S_IXOTH:其他用户有执行权0o001
stat.S_IWOTH:其他用户有写权限0o002
stat.S_IROTH:其他用户有读权限0o004
stat.S_IRWXO:其他用户有全部权限(权限掩码)0o007
stat.S_IXGRP:组用户有执行权限0o010
stat.S_IWGRP:组用户有写权限0o020
stat.S_IRGRP:组用户有读权限0o040
stat.S_IRWXG:组用户有全部权限(权限掩码)0o070
stat.S_IXUSR:拥有者具有执行权限0o100
stat.S_IWUSR:拥有者具有写权限0o200
stat.S_IRUSR:拥有者具有读权限0o400
stat.S_IRWXU:拥有者有全部权限(权限掩码)0o700
stat.S_ISVTX:目录里文件目录只有拥有者才可删除更改0o1000
stat.S_ISGID:执行此文件其进程有效组为文件所在组0o2000
stat.S_ISUID:执行此文件其进程有效用户为文件所有者0o4000
stat.S_IREAD:windows下设为只读
stat.S_IWRITE:windows下取消只读
os.path模块
os.path.pathsep:表示默认的路径间的分隔符,windows为“;”; Linux为“:”
os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
os.path.isfile(name):判断name是不是一个文件,不存在name也返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.getsize(name):获得文件大小,如果name是目录返回0L
os.path.getctime(name):获得文件的创建时间
os.path.getmtime(name):获得文件的修改时间
os.path.getatime(name):获得文件的最后访问时间
os.path.isabs(name):测试是否是绝对路径
os.path.abspath(name):获得绝对路径
os.path.normpath(path):规范path字符串形式
os.path.relpath(path, start='.'):返回路径的相对版本
os.path.split(name):分割文件名与目录(如果完全使用目录,它也会将最后一个目录作为文件名而分离,它不会判断文件或目录是否存在)
os.path.splitext():分离文件名与扩展名
os.path.splitdrive():分离驱动名或unc名字
os.path.join(路径+os.path.altsep,'1234'+os.path.altsep,'abc'):将分离的各部分组合成一个路径名
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径
os.path.expanduser("~"):用来获得user的home路径。
shutil模块
shutil.copyfile(src, dst):拷贝文件
shutil.copytree(srcDir, dstDir):拷贝目录
shutil.rmtree('dir'):删除非空文件夹
shutil.move('old','new'):修改文件和目录名称
glob模块
匹配文件:glob.glob(r”c:\linuxany\*.py”)
总结:os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口。
三、给文件夹中图片加上一个前缀
import re
import os
import time
def change_name(path):
global i
if not os.path.isdir(path) and not os.path.isfile(path):
return False
if os.path.isfile(path):
file_path = os.path.split(path)
lists = file_path[1].split('.')
file_ext = lists[-1]
img_ext = ['bmp','jpeg','gif','psd','png','jpg']
if file_ext in img_ext:
os.rename(path,file_path[0]+'/'+lists[0]+'_fc.'+file_ext)
i += 1
img_ext = 'bmp|jpeg|gif|psd|png|jpg'
if file_ext in img_ext:
print('ok---'+file_ext)
elif os.path.isdir(path):
for x in os.listdir(path):
change_name(os.path.join(path,x))
img_dir = 'D:\\xx\\xx\\images'
img_dir = img_dir.replace('\\','/')
start = time.time()
i = 0
change_name(img_dir)
c = time.time() - start
print('程序运行耗时:%0.2f'%(c))
print('总共处理了 %s 张图片'%(i))