?
大家好!我是码银🥰
欢迎关注🥰:
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))# 输出结果
这里还有一版:
这段代码是用于从名为 “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}")
欢迎关注: