Python文件操作(文件、文件夹、压缩文件夹相关操作以及应用示例)

本文详细介绍了Python中关于文件和目录的各种操作,包括文件创建、删除、读取、写入、移动、拷贝,以及目录的创建、删除、重命名等。同时,讲解了压缩文件的读取、解压和创建,还提供了学生信息收集和文件定期备份的经典案例。
摘要由CSDN通过智能技术生成

第1章 文件操作篇

本章主要分为4节,前2节对文件、目录的常见操作进行介绍,3节对压缩文件的操作进行了介绍,第4节选择两个示例来将我们所学进行应用。我们可以结合本章所学,应用在工作中其他场景。

一、文件操作

1、文件创建

(1)open函数

Python内置了一个名为open的函数,它可以用于创建、打开和修改文件。

file = open("new_file.txt", "w")
file.close()

使用"new_file.txt"作为文件名,并使用"w"作为访问模式。其中,"w"代表写入模式,它会创建一个新文件,并允许写入内容。

(2)with关键字

在使用open函数创建文件时,我们需要手动关闭文件,以确保资源得到释放。为了简化这个过程,Python提供了一个更好的方式,即使用with关键字。示例如下:

with open("new_file.txt", "w") as file:
    # 在这里进行文件操作
    pass

2、文件删除

os模块适用于删除单个文件或空目录;
shutil模块适用于删除单个文件或非空目录;
使用外部命令删除文件(os.system(),subprocess.call())则需要慎重考虑命令的风险和安全性。

(1)os.remove()

os模块中的remove()方法可以直接将指定的文件删除。代码示例如下:

import os

try:
    os.remove('test.txt')
    print('文件删除成功')
except Exception as e:
    print('文件删除失败', e)
    

需要提醒的是,如果文件不存在,将会抛出文件不存在的异常。注意只能删文件,如果给了一个文件夹路径则会报错。

(2)shutil模块删除文件

shutil模块是Python标准库中的一个文件操作工具模块,其提供了更为丰富的文件操作功能,其中删除文件的函数是os.unlink()。

import shutil

try:
    shutil.unlink('file.txt')
    print("文件删除成功!")
except Exception as e:
    print("文件删除失败:", e)

shutil模块的os.unlink()函数与os模块的os.remove()函数本质上是相同的,都可以用于删除文件。
此外,shutil模块还提供了rmtree()函数用于删除指定路径下的所有文件及其子目录。

import shutil

try:
    shutil.rmtree('./test_dir')
    print("目录删除成功!")
except Exception as e:
    print("目录删除失败:", e)
    

上述代码将删除指定路径下的test_dir目录及其所有子目录和文件。

(3)使用os.unlink()方法删除文件

import os

try:
    os.unlink('test.txt')
    print('文件删除成功')
except Exception as e:
    print('文件删除失败', e)

os.unlink()方法跟os.remove()方法一样,只能删除文件,不能删除目录。

(4)使用os.system()方法删除文件

os模块还提供了与操作系统交互的方法system()。我们可以使用这个方法来执行运行时脚本命令,并删除文件。示例如下:

import os

try:
    os.system('rm test.txt')
    print('文件删除成功')
except Exception as e:
    print('文件删除失败', e)

需要注意的是,os.system()方法依赖于操作系统,所以可移植性相对较差。除非使用的是类Unix系统,否则请谨慎使用。

(5)使用subprocess.call()删除文件

import subprocess

cmd = "rm -rf ./test_dir"
try:
    subprocess.call(cmd, shell=True)
    print("命令执行成功!")
except Exception as e:
    print("命令执行失败:", e)
    

上述代码中,通过subprocess.call()函数执行了shell命令rm删除了指定目录下的test_dir目录及其所有文件。

需要

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值