1.切换目录
#语法 os.chdir(path) path:绝对路径或相对路径 #ipython演示 In [3]: import os In [4]: os.chdir('xiangmu1') In [5]: ls yi2.文件或目录的特殊设置
#语法 os.chflages(path, flages) path:绝对路径或相对路径 flages:特殊设置,如文件只读,只能追加,不能删除等 stat.UF_NODUMP: 非转储文件 stat.UF_IMMUTABLE: 文件是只读的 stat.UF_APPEND: 文件只能追加内容 stat.UF_NOUNLINK: 文件不可删除 stat.UF_OPAQUE: 目录不透明,需要通过联合堆栈查看 stat.SF_ARCHIVED: 可存档文件(超级用户可设) stat.SF_IMMUTABLE: 文件是只读的(超级用户可设) stat.SF_APPEND: 文件只能追加内容(超级用户可设) stat.SF_NOUNLINK: 文件不可删除(超级用户可设) stat.SF_SNAPSHOT: 快照文件(超级用户可设)3.修改文件权限
#语法 os.chmod(path, mode) path:路径 mode:权限 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下取消只读4.修改所属用户和用户组
#语法: os.chown(path, uid, gid) path:路径 uid:用户id gid:用户组,组id 演示: import os os.chown('1.txt', 1001, -1) #-1表示组id不变,但是work用户不属于root组,所以组为空了 ll total 12 -rw-r--r-- 1 work 0 Jul 5 08:44 1.txt5.返回当前工作目录
#语法 os.getwd() #演示 os.getcwd() Out[6]: '/root/python'6.创建硬链接文件
#将1.txt链接到4.txt In [1]: import os In [2]: src = '1.txt' In [3]: dst = '4.txt' In [4]: os.link(src, dst) In [5]: ll total 20 -rw-r--r-- 2 work 14 Jul 6 11:19 1.txt -rw-r--r-- 1 root 0 Jul 5 08:44 2.txt -rw-r--r-- 1 root 0 Jul 5 08:44 3.txt -rw-r--r-- 2 work 14 Jul 6 11:19 4.txt drwxr-xr-x 2 root 4096 Jul 5 08:47 xiangmu1/ drwxr-xr-x 2 root 4096 Jul 5 08:47 xiangmu2/ drwxr-xr-x 2 root 4096 Jul 5 08:47 xiangmu3/ In [6]: cat 4.txt 11111111111117.返回指定目录下的内容
#返回一个无序的列表 In [8]: os.listdir('./') Out[8]: ['xiangmu2', '3.txt', '1.txt', '4.txt', 'xiangmu1', 'xiangmu3', '2.txt']8.创建目录
语法: os.mkdir(path, mode) os.makedirs(path, mode) #创建递归目录 In [3]: os.mkdir('new', 755) In [4]: ll total 24 -rw-r--r-- 2 work 14 Jul 6 11:19 1.txt -rw-r--r-- 1 root 0 Jul 5 08:44 2.txt -rw-r--r-- 1 root 0 Jul 5 08:44 3.txt -rw-r--r-- 2 work 14 Jul 6 11:19 4.txt d-wxr----t 2 root 4096 Jul 6 11:51 new/ drwxr-xr-x 2 root 4096 Jul 5 08:47 xiangmu1/ drwxr-xr-x 2 root 4096 Jul 5 08:47 xiangmu2/ drwxr-xr-x 2 root 4096 Jul 5 08:47 xiangmu3/9.删除目录
#语法 os.rmdir(path) os.removedirs(path) #递归删除目录 #演示 In [6]: ll total 24 -rw-r--r-- 2 work 14 Jul 6 11:19 1.txt -rw-r--r-- 1 root 0 Jul 5 08:44 2.txt -rw-r--r-- 1 root 0 Jul 5 08:44 3.txt -rw-r--r-- 2 work 14 Jul 6 11:19 4.txt d-wxr----t 2 root 4096 Jul 6 11:51 new/ drwxr-xr-x 2 root 4096 Jul 5 08:47 xiangmu1/ drwxr-xr-x 2 root 4096 Jul 5 08:47 xiangmu2/ drwxr-xr-x 2 root 4096 Jul 5 08:47 xiangmu3/ AttributeError: module 'os' has no attribute 'redir' In [8]: os.rmdir('new') In [9]: ll total 20 -rw-r--r-- 2 work 14 Jul 6 11:19 1.txt -rw-r--r-- 1 root 0 Jul 5 08:44 2.txt -rw-r--r-- 1 root 0 Jul 5 08:44 3.txt -rw-r--r-- 2 work 14 Jul 6 11:19 4.txt drwxr-xr-x 2 root 4096 Jul 5 08:47 xiangmu1/ drwxr-xr-x 2 root 4096 Jul 5 08:47 xiangmu2/ drwxr-xr-x 2 root 4096 Jul 5 08:47 xiangmu3/10.删除文件
#语法 os.remove(path) #演示 In [10]: ll xiangmu1/ total 0 -rw-r--r-- 1 root 0 Jul 5 08:47 yi In [11]: os.remove('xiangmu1/yi') In [12]: ll xiangmu1/ total 011.重命名文件或目录
#语法 os.rename(old, new) os.renames(old, new) #递归 #演示 In [13]: ll xiangmu2/ total 0 -rw-r--r-- 1 root 0 Jul 5 08:47 er In [14]: os.renames('xiangmu2/er', 'er/er.txt') In [15]: ll er/ total 0 -rw-r--r-- 1 root 0 Jul 5 08:47 er.txt1.返回绝对路径
语法: os.path.abspath(path) path:路径 #演示 In [1]: from os import path In [2]: path.abspath('./') Out[2]: '/root/python'2.判断路径是否存在
语法: os.path.exists(path) path:路径 #演示 In [6]: os.path.exists('1.txt') Out[6]: True3.查看文件的创建、访问、修改时间
语法: os.path.getctime(path) #创建时间 os.path.getmtime(path) #修改时间 os.path.getatime(path) #访问时间 path:路径 #演示 In [1]: import os.path In [2]: os.path.getatime('1.txt') Out[2]: 1594005737.0693882 In [3]: os.path.getmtime('1.txt') Out[3]: 1594005573.6090128 In [4]: os.path.getctime('1.txt') Out[4]: 1594005728.47968534.查看文件大小
#语法 os.path.getsize(path) #演示 In [6]: os.path.getsize('1.txt') Out[6]: 145.判断是否为目录、文件、链接、挂载目录
#语法 os.path.isfile(path) #判断是否为文件 os.path.isdir(path) #判断是否为目录 os.path.islink(path) #判断是否为链接 os.path.ismount(path) #判断目录是否被挂载 #演示 In [7]: os.path.isfile('1.txt') Out[7]: True In [8]: os.path.isdir('xiangmu1') Out[8]: True In [9]: os.path.islink('1.txt') Out[9]: False In [10]: os.path.ismount('xiangmu1') Out[10]: False合并路径
os.path.join(path1, path2)