大家好!我是码银
欢迎关注:
CSDN:码银
公众号:码银学编程

前言

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

正文

文件的删除

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

import osdef 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 shutildef 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 osif __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))# 输出结果


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

import reif __name__ == "__main__":try:with open("filename.txt", "r") as f:count = 0for 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}")

欢迎关注: