Python处理文件——os模块,shutil模块

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的rmdirremovedirs ,但是他都要求目录为空。
  • 所以使用 shutil 就方便多了 ,shutil.rmtree() 就方便多了
  • 所以在删除文件的时候,我们这么选择,在删除单个文件的时候,使用os。unlink() 在处理目录的时候,我们使用 shutil.rmtree()
  • -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值