Python(18)--文件输入/输出 Ⅱ

2024-02-26 1171阅读

温馨提示:这篇文章已超过446天没有更新,请注意相关的内容是否还可用!

Python(18)--文件输入/输出 Ⅱ

大家好!我是码银🥰

欢迎关注🥰:

CSDN:码银

公众号:码银学编程

前言

前一篇文章(python(17)–文件的输入/输出-CSDN博客)介绍了如何操作文本文件和二进制文件,以及对应文件的写入和读取。这篇文章继续学习文件的输入/输出操作😆。

正文

文件的删除

文件的删除可以使用os模块的remove()函数来删除文件,这样我们可以编写一个函数以此达到删除文件的作用,下面是一个示例代码:

import os
def delete_file(file_path):
    try:
        os.remove(file_path)
        print(f"文件 {file_path} 已被删除")
    except OSError as e:
        print(f"删除文件时出错: {e.strerror}")
delete_file("file.txt")

在这个示例中,delete_file函数接受一个文件路径作为参数,然后尝试删除该文件。如果文件成功被删除,它会打印一条消息说文件已被删除。如果删除文件时发生错误,它会捕获OSError异常并打印出错误消息。

文件的复制

关于文件的复制,我们就要用另一个库来实现了,shutil是Python的一个高级文件操作模块,它与os模块形成互补关系。os模块主要提供了文件或文件夹的新建、删除、查看等方法,以及对文件以及目录的路径操作。而shutil模块则提供了移动、复制、压缩、解压等操作,恰好与os模块形成互补,两者共同使用,基本能完成所有文件的操作。

import shutil
def copy_file(src, dst):
    try:
        shutil.copy(src, dst)
        print(f"文件 {src} 已成功拷贝到 {dst}")
    except Exception as e:
        print(f"拷贝文件时出错: {e}")
copy_file("filename.txt", "D://pyprogect//file.txt")

copy_file()函数中,第一个位置是原始文件,第二个文件是目标文件位置。然后,使用shutil.copy函数将源文件拷贝到目标路径。如果文件成功被拷贝,它会打印一条消息说文件已被成功拷贝。如果拷贝文件时发生错误,它会捕获异常并打印出错误消息。

文件的重命名

如果存在文件“filename.txt”就将其重新命名为"666.txt",另外还有三个异常判断语句,提高程序的健壮性。

import os  
  
if __name__ == "__main__":  
    try:  
        li = os.listdir(".")  # 判断当前目录  
        print(li)  
        if "filename.txt" in li:  
            os.rename("filename.txt", "666.txt")  
    except FileNotFoundError:  
        print("文件 'filename.txt' 不存在")  
    except PermissionError:  
        print("没有足够的权限执行此操作")  
    except Exception as e:  
        print(f"发生未知错误: {e}")

文件内容的查找

with open('filename.txt', 'r') as file:
    content = file.read()# 读取文件内容
count = content.count("hello")# 统计字符串 "hello" 出现的次数
print("字符串出现次数: {} 次".format(count))# 输出结果

Python(18)--文件输入/输出 Ⅱ

这里还有一版:

这段代码是用于从名为 “filename.txt” 的文件中查找字符串 “hello” 的出现次数。如果文件不存在或无法读取,它会打印相应的错误消息。如果发生其他错误,它也会捕获并打印错误消息。

import re
if __name__ == "__main__":
    try:
        with open("filename.txt", "r") as f:
            count = 0
            for s in f:
                matches = re.findall("hello", s)
                if matches:
                    count += len(matches)
            print(f"查找到 {count} 个 hello")
    except FileNotFoundError:
        print("文件不存在")
    except PermissionError:
        print("无法读取文件")
    except Exception as e:
        print(f"发生错误:{e}")

欢迎关注:

Python(18)--文件输入/输出 Ⅱ

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]