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()
- -