我们对文件的管理是通过文件对象的方式实现的,而文件是Python中os模块,我们在管理文件或目录的时候,就需要使用Python中的os模块,os模块中有非常多的方法来帮助我们处理文件及目录。
1. os模块
常用的os方法如下表格:
方法 | 功能 |
os.access(path, name) | 特权模式 |
os.chdir(path) | 改变当前工作目录 |
os.chflags(path, flags) | 设置路径的标记为数字标记 |
os.chmod(path, name) | 更改权限 |
os.chown(path, uid, gid) | 更改文件所有者 |
os.chroot(path) | 改变当前进程的根目录os.close(x) |
os.close(x) | 关闭文件 |
os.fchdir(x) | 通过文件描述符改变当前工作目录 |
os.getcwd() | 返回当前工作目录 |
os.listdir(path) | 返回当前目录下的所有文件及文件夹的列表 |
os.mkdir(path[,name]) | 创建一个名字为name的文件夹名 |
os.open(file) | 打开一个文件 |
os.remove(path) | 删除path路径的文件 |
os.rename(src,dst) | 修改文件名,src为源文件,dst为目标文件 |
os.rmdir(path) | 删除path对应的目录 |
还有一些简单的os模块中内容我们在这里举例子来看一下:
>>> import os >>> os.name#返回nt为windows,posix为Linux、Unix或mac os。 >>> os.linesep#当前系统的换行符 '\r\n' >>> os.sep#当前系统的分隔符 '\\' >>> os.name 'nt'
2. os.path模块
os.path是一个针对路径的模块,模块内提供对文件、目录和路径管理的函数,常见的函数如下表格:
os.path.abspath(path) | 返回路径名路径的规范化绝对化版本 |
os.path.basename(path) | 返回路径名路径的基名称 |
os.path.commonprefix(list) | 返回序列路径中每个路径名的最长公共子路径 |
os.path.dirname(path) | 返回路径名路径的目录名 |
os.path.exists(path) | 如果路径引用现有路径或打开的文件描述符,则返回True,中断的符号链接返回Flase |
os.path.lexists | 如果路径引用现有路径,则返回True |
os.path.expanduser(path) | 返回参数,初始组件为~或~user替换为该用户的主目录 |
os.path.expandvars(path) | 返回环境变量展开的参数 |
os.path.getatime(path) | 返回路径的最后访问时间 |
os.path.getmtime(path) | 返回上次修改路径的时间 |
os.path.getctime(path) | 返回文件 path 的创建时间 |
os.path.getsize(path) | 返回路径的大小,以字节为单位 |
os.path.isabs(path) | 如果路径是绝对路径名,则返回True |
os.path.isfile(path) | 如果路径是文件,则返回True |
os.path.isdir(path) | 如果路径是目录,则返回True |
os.path.islink(path) | 如果路径是链接,则返回True |
os.path.ismount(path) | 如果路径是挂载点,则返回True |
os.path.join(path1[, path2[, ...]]) | 把目录和文件名合成一个路径 |
os.path.normcase(path) | 转换path的大小写和斜杠 |
os.path.normpath(path) | 规范path字符串形式 |
os.path.realpath(path) | 返回path的真实路径 |
os.path.relpath(path[, start]) | 计算相对路径 |
os.path.samefile(path1, path2) | 判断目录或文件是否相同 |
os.path.sameopenfile(fp1, fp2) | 判断fp1和fp2是否指向同一文件 |
其中最常用的几种分别是abspath()、exists(path)、join(path,name)、basename(path)、dirname(path)、isdir(path),我们来看个例子。
import os print('当前目录:',os.getcwd()) print('判断当前目录是否存在,存在的话返回True',os.path.exists(os.getcwd()))
输出结果为:
当前目录: C:\Users\teach 判断当前目录是否存在,存在的话返回True True
3. 总结
我们在使用的过程中,涉及路径的我们可以采用os.path模块中的方法,我们在导入的时候采用的方式都是import.os,os.path属于os中的一个子模块,在使用的时候可以根据情况去使用其中的方法,但一定不要忘记提前导入。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程