os以及os.path的基础函数
| 函数 | 解释 | 举例 |
|---|---|---|
| os.listdir() | 列出文件 | |
| os.path.split() | 将文件拆分成数组 | In [33]: os.path.split(‘/root/python/test/1.txt’) Out[33]: (‘/root/python/test’, ‘1.txt’) |
| os.path.jion() | 将地址拼接 | |
| os.rmove()/os.unlink() | 删除文件 | |
| os.getcwd() | 获取当前路径 | |
| os.chdir() | 更改路径 | |
| os.makedirs() | 创建文件夹 | os.makedirs(‘1.txt’,exist_ok=True) 创建文件 ps:open(‘fielname’,’a/w’) |
| os.chmod() | 更改权限 | |
| os.chown() | 更改所属 | |
| os.chroot() | 改到root | |
| os.access() | ||
| - | - | |
| os.path.abspath() | 绝对路径 | |
| ps.patn.realpath() | 绝对路径 | |
| os.path.expanduser() | 相对路径 | |
| os.path.basename() | 文件名 | |
| os.path.dirname() | 所在文件夹路径 | |
| - | - | |
| os.path.getatime() | 最近访问时间 | |
| os.path.getctime() | 创建创建时间 | |
| os.path.getmtime() | 最近修改时间 | |
| os.path.getsize() | 文件大小 | |
| os.path.split() | 拆分路径 | |
| os.path.splitext() | 拆分程序和文件类型 | |
| - | - | |
| os.path.isabs() | 检查是否是绝对路径 | |
| os.path.islink() | 检查是否是连接 | |
| os.patn.isdir() | 检查是否是目录文件 | |
| os.path.isfile() | 检查是否是文件 | |
| - | - | |
| os.rename() | 修改名称 |
高级文件接口 shutil
os模块和shutil的区别
os更加面向的是将操作系统的接口进行封装,主要作用是跨平台 而shutil的设计是为了管理文件和目录,因此他们不是冲突的关系,更像是互补的关系 个人观点是,os更偏向是文件信息的获取,而shutil高级的文件接口,偏向文件的操作。在常见的文件操作中,shutil中的函数更容易使用,我们可以优先使用 shutil中的函数。
shutil的复制函数
shutil.copy(filename)shutil.copytree(dirname)
这里的shulit中用于copy的函数与linux中的mv不同,
在处理dir和file的方法是不一样的。
In [21]: import shutil
In [22]: ls
1a.txt 1b.txt 2a.txt 2b.txt
In [23]: shutil.copy('1a.txt','1a_copy.txt')
Out[23]: '1a_copy.txt'
In [24]: ls
1a_copy.txt 1a.txt 1b.txt 2a.txt 2b.txt
In [25]: os.makedirs('testDit.d')
In [26]: ls
1a_copy.txt 1a.txt 1b.txt 2a.txt 2b.txt testDit.d/
In [27]: shutil.copytree('testDit.d/','testDit.d_copy/')
Out[27]: 'testDit.d_copy/'
In [28]: ls
1a_copy.txt 1a.txt 1b.txt 2a.txt 2b.txt testDit.d/ testDit.d_copy/
shutil文件改名和移动
shutil.move 的功能是和linux中的mv类似
#改名
In [30]: shutil.move('1a.txt','3a.txt')
Out[30]: '3a.txt'
#移动
In [31]: shutil.move('1b.txt','testDit.d/')
Out[31]: 'testDit.d/1b.txt'
删除目录
在Python,删除文件可以
- 使用os模块中的remove和unlink函数,删除文件
- 在删除目录的时候我们可以选择os的
rmdir和removedirs,但是他都要求目录为空。 - 所以使用 shutil 就方便多了 ,
shutil.rmtree()就方便多了 - 所以在删除文件的时候,我们这么选择,在删除单个文件的时候,使用
os。unlink()在处理目录的时候,我们使用shutil.rmtree() - -

本文介绍了Python中处理文件的os模块和高级文件接口shutil。os模块包含基础文件操作,而shutil提供了更便捷的复制、改名、移动文件及删除目录的功能。在实际操作中,shutil的便利性更胜一筹。
2万+

被折叠的 条评论
为什么被折叠?



