首页 > 编程语言 >Python 开发(13):文件与目录操作的实用技巧

Python 开发(13):文件与目录操作的实用技巧

时间:2024-11-16 10:50:01浏览次数:3  
标签:实用技巧 13 文件 Python file path os 目录 dir

Python 开发(13):文件与目录操作的实用技巧

在这里插入图片描述

文件和目录操作是每个开发者在日常工作中不可或缺的部分。Python 提供了丰富的文件和目录操作功能,如读取、写入文件、遍历目录、文件权限管理等。这些功能不仅适用于小型脚本项目,在数据处理、自动化任务和服务器开发中也十分常用。本篇将介绍 Python 文件与目录操作的实用技巧,并给出代码示例,帮助你轻松掌握这些操作。


目录

  1. 基本文件操作:读取与写入
  2. 目录操作:创建、遍历与删除
  3. 文件与目录权限管理
  4. 文件路径处理与 os.path 模块
  5. 利用 shutil 进行高级文件操作
  6. 临时文件与目录的操作
  7. 示例项目:自动化文件备份工具

1. 基本文件操作:读取与写入

Python 提供了简单的方法读取和写入文件。常用模式包括:

  • r:只读
  • w:写入(会清空原有内容)
  • a:追加
  • rb/wb:以二进制模式读写
# 写入文件
with open('example.txt', 'w') as file:
    file.write("Hello, Python!")

# 读取文件
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)
2. 目录操作:创建、遍历与删除

使用 os 模块,我们可以进行基本的目录操作。

  • 创建目录

    import os
    os.mkdir('new_directory')  # 创建单层目录
    os.makedirs('parent_dir/sub_dir', exist_ok=True)  # 创建多层目录
    
  • 遍历目录

    for root, dirs, files in os.walk('parent_dir'):
        print(f"Root: {root}")
        print(f"Directories: {dirs}")
        print(f"Files: {files}")
    
  • 删除目录

    os.rmdir('new_directory')  # 删除空目录
    import shutil
    shutil.rmtree('parent_dir')  # 删除包含文件的目录
    
3. 文件与目录权限管理

文件的权限管理在操作系统级别非常重要。在 Python 中,我们可以使用 os.chmod 改变文件权限。

  • 更改权限

    import os
    os.chmod('example.txt', 0o644)  # 更改文件为可读写权限
    
  • 查看权限

    file_stat = os.stat('example.txt')
    print(oct(file_stat.st_mode))  # 查看文件权限信息
    
4. 文件路径处理与 os.path 模块

os.path 模块提供了路径处理的实用方法:

  • 合并路径

    import os
    full_path = os.path.join('folder', 'subfolder', 'file.txt')
    print(full_path)
    
  • 检查文件或目录是否存在

    os.path.exists('example.txt')
    
  • 获取文件信息

    print(os.path.basename(full_path))  # 获取文件名
    print(os.path.dirname(full_path))   # 获取目录名
    
5. 利用 shutil 进行高级文件操作

shutil 模块支持更高级的文件操作,如复制、移动等:

  • 复制文件

    import shutil
    shutil.copy('example.txt', 'backup.txt')
    
  • 移动文件

    shutil.move('example.txt', 'new_directory/example.txt')
    
6. 临时文件与目录的操作

tempfile 模块用于创建临时文件和目录,非常适合临时数据处理需求。

import tempfile

# 创建临时文件
with tempfile.NamedTemporaryFile(delete=True) as temp_file:
    temp_file.write(b"Temporary content")
    temp_file.seek(0)
    print(temp_file.read())

# 创建临时目录
with tempfile.TemporaryDirectory() as temp_dir:
    print(f"Temporary directory created at: {temp_dir}")
7. 示例项目:自动化文件备份工具

我们可以结合前面的技巧创建一个简单的文件备份工具,它会将指定目录的文件备份到另一个目录。

import os
import shutil
from datetime import datetime

def backup_files(source_dir, backup_dir):
    if not os.path.exists(backup_dir):
        os.makedirs(backup_dir)
    timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
    for file_name in os.listdir(source_dir):
        full_file_name = os.path.join(source_dir, file_name)
        if os.path.isfile(full_file_name):
            shutil.copy(full_file_name, os.path.join(backup_dir, f"{file_name}_{timestamp}"))
    print(f"Backup completed to {backup_dir} at {timestamp}")

# 使用备份函数
backup_files('source_folder', 'backup_folder')

总结

在日常开发中,文件与目录操作是非常基础且重要的技能。无论是文件读取写入、目录管理还是高级文件处理技巧,Python 都提供了丰富的工具来简化这些操作。掌握这些操作,不仅能提升工作效率,还能让项目结构更为清晰。通过示例项目的实践,大家可以在实际应用中实现自动化的文件管理。

标签:实用技巧,13,文件,Python,file,path,os,目录,dir
From: https://blog.csdn.net/mmc123125/article/details/143748501

相关文章

  • Python 中 if __name__ == ‘__main__‘ 的解释
    1.基本概念   在Python中,`if__name__=="__main__"`是一种常见的代码结构。`__name__`是一个内置变量,它的值取决于模块是如何被使用的。   当一个Python脚本被直接运行时,`__name__`的值被设置为`"__main__"`。而当一个模块被另一个模块导入时,`__name__`的值就是该......
  • 跟着走,Python从入门到精通,一个月就够!
    毫无疑问,Python是当下最火的编程语言之一。对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握Python看似是一件十分困难的事。其实,只要掌握了科学的学习方法并制定了合理的学习计划,Python从入门到精通只需要一个月就够了!如果每天坚持用6-7小时来做一件事,你会......
  • 题解:ABC013D 阿弥陀
    先考虑\(D=1\),明显可以\(O(M)\)模拟预处理出在最上面的每个位置往下走会走到什么位置,之后每次就可以\(O(1)\)查询了。当\(D>1\)时,可以依赖预处理的数据每次\(O(D)\)暴力查询。又注意到每次对所有位置进行的变换操作是一样的,可以倍增后用类似快速幂的方法优化到\(O(\log......
  • springboot宠物健康助手-毕业设计源码76130
    宠物健康助手摘 要本研究基于Java语言和SpringBoot技术,旨在设计并实现一款名为“宠物健康助手”的系统。该系统旨在为宠物主人提供全方位的宠物健康管理服务,包括宠物医院预约、宠物健康资讯浏览、宠物医生诊疗等功能。系统的设计考虑到了宠物主人的需求,以及宠物健康管......
  • 基于线性回归的粮食产量预测(Python代码)
    一、引言预测粮食产量在农业规划、食品安全和全球经济稳定等多个方面都具有极其重要的意义,其应用场景也十分广泛。以下是对预测粮食产量的重要性和应用场景的详细介绍:1.1预测粮食产量的重要性(1)农业规划与决策支持:粮食产量预测为政府和相关机构提供了农业规划的基础数据。......
  • 网络爬虫 Python 第二课
    BeautifulSoup高级用法:标签查找与筛选:除了简单地通过标签名查找(如 soup.find('div') 查找第一个 div 标签),还可以利用属性来更精准地查找。例如,如果要查找所有 class 属性为 article 的 div 标签,可以使用 soup.find_all('div',class_='article') 。这里注意 cl......
  • (分享源码)计算机毕业设计必看必学 上万套实战教程手把手教学JAVA、PHP,node.js,C++、pyth
    摘要随着计算机科学技术日渐成熟,人们已经深刻认识到了计算机功能的强大,计算机已经进入到了人类社会发展的各个领域,并且发挥着十分重要的作用。通过管理系统在电脑上的应用,人们能更好的管理信息,储存数据。为了能够提供游戏商城的方便性,开发了基于vue的游戏网站。此游戏网站......
  • (分享源码)计算机毕业设计必看必学 上万套实战教程手把手教学JAVA、PHP,node.js,C++、pyth
    摘要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,招聘网站当然也不能排除在外。招聘网站是以实际运用为开发背景,运用软件工程开发方法,采用互联网技术构建的一个管理系统。整个开发过程首先对软件系统进行需......
  • 计算机毕业设计项目推荐,SSM山西能源学院教室管理系统81671(开题答辩+程序定制+全套文案
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,山西能源学院教室管理系统当然也不能排除在外。山西能源学院教室管理系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用 SSM技术构建的一个管理系......
  • (免费源码)计算机毕业设计必看必学 原创程序 java、PHP、python、文案全套、毕设成品等
    摘要由于数据库和数据仓库技术的快速发展,停车场管理系统建设越来越向模块化、智能化、自我服务和管理科学化的方向发展。停车场管理系统对处理对象和服务对象,自身的系统结构,处理能力,都将适应技术发展的要求发生重大的变化。停车场管理系统除了具有共享系统的全部功能以外,能......