文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python如何实现文件夹操作

2023-06-30 16:28

关注

本文小编为大家详细介绍“Python如何实现文件夹操作”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现文件夹操作”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、文件操作

1.1 文件常规操作

操作代码说明/示例
新建文件os.mknod(dir_str)传入需创建文件的路径,但是需要修改权限才行
os.system(' touch test.txt')使用命令行创建,简单方便
移动文件shutil.move(src_str,dst_str)传入源路径和目标路径,可移动文件及文件夹,移动文件夹时是递归移动,返回相较于工作目录的相对最终路径
复制文件shutil.copyfile(src_str,dst_str)传入源文件和需复制到路径,均需是文件,返回相较于工作目录的相对最终路径
shutil.copy(src_str,dst_str)传入源文件和需复制到路径,dst如果是文件则复制+重命名,如果是目录,则直接复制,但均不复制文件元信息
shutil.copy2(src_str,dst_str)相较于copy,会将文件元信息也复制,包括创建、修改时间等
重命名os.rename(old_str,new_str)对文件或文件夹重命名
删除文件os.remove(file_str)删除指定文件,可以传入相较于工作目录的相对路径

1.2 文件读写

文件读写建议使用Python的标准file操作,具体本文不作展开

with open(filename_str,mode_str) as f:    f.readline()    f.write(content)

1.3 文件相关属性访问

操作代码说明/示例
获取文件或文件夹属性os.stat(dir_str)

获取文件或文件夹相关属性

可返回文件的模式、所属用户ID、大小、上次访问时间、最后修改时间、创建时间等信息

具体见: Python os.stat() 方法 | 菜鸟教程

二、文件夹操作

2.1 文件夹常规操作

操作代码说明/示例
新建文件夹os.mkdir(dir_str)创建单个文件夹,如果文件夹已存在会报错
os.mkdirs(dir_str)递归创建文件夹,即可一次性创建多层文件夹

from pathlib import Path

p=Path(dir_str)

p.mkdir(exist_ok=True)

使用pathlib,可以创建单个或递归创建文件夹,且如果存在也可忽略报错
移动文件夹shutil.move(src_str,dst_str)可移动文件或文件夹
复制文件夹shutil.copytree(src_str,dst_str)递归的将指定文件夹复制到目标文件夹内,一般用作备份文件夹
删除文件夹os.rmdir(dir_str)删除指定文件夹,只能删除单层文件夹,且不为空
os.removedirs(dir_str)递归删除指定文件夹,但只会删除非空文件夹

from pathlib import Path

p=Path(dir_str)

p.rmdir()

与os.rmdir作用相同
shutil.rmtree(dir_str)递归删除指定文件夹及子文件夹,不为空也行,相对比较危险

2.2 遍历文件夹

操作代码说明/示例
单层遍历os.listdir(dir_str)返回列表,列表内为该文件夹内的所有文件及文件夹名称
os.scandir(dir_str)返回对指定文件单层遍历的迭代器,可遍历该迭代器,可获取文件或文件夹名称、属性信息
递归遍历os.walk(dir_str)递归遍历指定文件夹,包括子文件夹
import osdir_str='~/downloads/' #使用listdirdir_list=listdir(dir_str)for file in dir_list:    if os.path.isfile(os.path.join(os.getcwd(),file):        print('是一个文件')  #使用scandirfor file in os.scandir(dir_str):    print(file.name) #打印文件名称    print(file.stat) #打印文件属性
#使用os.walk()递归遍历#walk函数会返回当前遍历文件夹根目录,该目录下所有文件夹组成的列表以及该目录下所有文件组成的列表dir_str='~/downloads/'dir_iter=os.walk(dir_str) for root_dir,dirs,files in dir_iter:    for file in files:        print(file)

三、其他相关操作

3.1 工作目录操作

操作代码说明/示例
查询当前工作目录os.getcwd()返回当前的工作目录,即当前执行命令时所在工作目录
修改当前工作目录os.chdir(dir_str)修改当前工作目录,只是临时修改

3.2 文件&文件夹其他操作

操作代码说明/示例
压缩文件/文件夹shutil.make_archive(file_str,format,src_dir)将src_dir按照format指定的格式压缩为file_str文件
解压压缩文件shutil.unpack_archive(filename, extract_dir=None, format=None)将filename解压到extract_dir
变更权限

os.chmod(dir_str,mode_int)

os.chmod('aa.txt',777)

将dir_str的权限模式修改为mode_int
import shutilshutil.make_archive('aaa','zip','/users/aaa/downloads/常用脚本')#以上会将常用脚本文件夹内所有内容压缩为aaa.zip,并存到当前工作目录下#如果同时希望指定压缩文件的存储位置,则shutil.make_archive('/users/aaa/test/aaa.zip','zip','/users/aaa/downloads/常用脚本')
import shutilshutil.unpack_archive('aaa.zip','/users/yanweichao/downloads/bbb')#或想当前文件内的aaa.zip文件解压到bbb文件夹内,如果bbb文件夹不存在,会自动创建

读到这里,这篇“Python如何实现文件夹操作”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯