Python题目---文件类型

news/2024/12/29 7:59:35/

一、编写一个程序,可以将指定文件中的字符串修改,比如将文件中所有的"java"修改为"python".
①首先我们创建test_package包这个文件,并在文件下创建demo1.py的python文件,在里面定义一个函数如下:

def a_file(file_path,old_string,new_string):try:with open(file_path,'r',encoding='utf-8') as file:file_content = file.read()modified_content = file_content.replace(old_string,new_string)with open(file_path,'w',encoding='utf-8') as file:file.write(modified_content)print(f'成功将"{old_string}"替换为"{new_string}"。')except FileExistsError:print(f"文件末找到:{file_path}")except Exception as e:print(f"出现错误:{e}")

②创建python文件,并在里面调用如下:

file_path = 'user_pass.txt'
old_string = 'java'
new_string = 'python'
a_file(file_path, old_string, new_string)

代码解释如下:

  1. 首先,我们定义了一个名为 replace_string_in_file 的函数,该函数接受三个参数:file_path(文件路径)、old_string(要替换的旧字符串)和 new_string(要替换成的新字符串)。

  2. 在函数内部,我们使用 tryexcept 语句来捕获可能出现的异常,比如文件找不到或其他错误。

  3. 我们打开指定路径的文件 file_path,使用 with open(...) as file 语句,这样可以确保在文件操作完成后自动关闭文件,无需手动关闭文件。

  4. 使用 open 函数的第一个参数传入文件路径 file_path,第二个参数传入 'r' 表示以只读模式打开文件,第三个参数 encoding='utf-8' 指定文件的编码为 UTF-8,这样可以确保正确读取包含中文等非ASCII字符的文本文件。

  5. 使用 file.read() 读取文件内容,并将内容存储在变量 file_content 中。

  6. 使用字符串的 replace() 方法将 old_string 替换为 new_string,并将修改后的内容存储在变量 modified_content 中。

  7. 然后,我们再次打开同一个文件 file_path,这次使用 'w' 模式(写入模式),这样我们可以将修改后的内容写回文件中。同样地,我们指定文件编码为 UTF-8。

  8. 使用 file.write() 方法将修改后的内容 modified_content 写入文件中,从而完成了替换操作。

  9. 最后,我们打印一条消息,表示成功将 old_string 替换为 new_string

  10. 如果在文件操作过程中出现错误,如文件找不到或其他异常,我们会通过 except 语句捕获该异常,并打印相应的错误信息。

 二、利用b模式,编写一个拷贝工具,既可以拷贝文本又可以拷贝视频,图片等文件;mycopy.py a.bin b.bin mycopy.py a.txt b.txt

def copy_file(source_file, destination_file):try:with open(source_file, 'rb') as src_file:with open(destination_file, 'wb') as dest_file:while True:chunk = src_file.read(1024)if not chunk:breakdest_file.write(chunk)print(f'成功将 "{source_file}" 拷贝到 "{destination_file}"。')except FileNotFoundError:print(f"文件未找到:{source_file}")except Exception as e:print(f"出现错误:{e}")if __name__ == "__main__":# 源文件路径和目标文件路径source_file = 'source.txt'  # 替换为实际的源文件路径destination_file = 'destination.txt'  # 替换为实际的目标文件路径copy_file(source_file, destination_file)

代码解释如下:

  1. 我们定义了一个名为 copy_file 的函数,它接受两个参数:source_file(源文件路径)和 destination_file(目标文件路径)。

  2. 在函数内部,我们使用 tryexcept 语句来捕获可能出现的异常,比如文件找不到或其他错误。

  3. 我们使用 open 函数打开源文件 source_file,使用 'rb' 参数以二进制只读模式打开文件。这是因为二进制文件和文本文件的读取方式略有不同,我们需要使用二进制模式来确保正确地读取二进制文件。

  4. 同样地,我们使用 open 函数打开目标文件 destination_file,使用 'wb' 参数以二进制写入模式打开文件。这样我们可以将源文件的内容写入目标文件。

  5. 使用一个循环来读取源文件的内容,并以块为单位(这里是1024字节)进行读取。然后,我们将读取的内容写入目标文件,这样可以逐步将源文件的内容复制到目标文件中。

  6. 当读取的块变为空时,表示源文件已被完全复制到目标文件中,循环结束。

  7. 如果在复制过程中出现错误,比如文件找不到或其他异常,我们会通过 except 语句捕获该异常,并打印相应的错误信息。

  8. if __name__ == "__main__": 这个条件下,我们检查脚本是否被直接运行而不是作为模块导入。如果脚本被直接运行,那么 sys.argv 列表会包含命令行参数。

  9. 我们检查命令行参数的数量是否为3,因为第一个参数是脚本名称本身。如果不是3个参数,我们会打印一个使用说明。

  10. 如果命令行参数的数量正确,我们提取第二个和第三个参数作为 source_filedestination_file,然后调用 copy_file 函数,将源文件的内容复制到目标文件中。


http://www.ppmy.cn/news/974292.html

相关文章

iOS--编译连接的过程_2

文章目录 iOS编译(一)编译器前端 编译器后端执行一次XCode build的流程 IPA包的内容二进制文件的内容iOS Link Map File文件说明1. Link Map File 是什么2. Link Map File 有什么用3. 生成 Link Map File查看Link Map File1)路径部分计算机系…

Chat GPT真的是风险大于收益?

不可否认,自从允许公众访问和使用以来,ChatGPT 就一直是热门话题。人工智能现在已经成为每个人都知道的话题,尤其是在科技界。它已成为学校和大学课程的一部分,并且该主题已在教育学位和课程中占有一席之地。有几个 Open AI 应用程序以某种形式存在了很长一段时间,但并没有…

win11系统之安装MySQL8.0版本

win11系统之安装MySQL8.0版本 一、本次实践介绍1.1 MySQL简介1.2MySQL8.0特点1.2 环境介绍二、下载MySQL软件包2.1 MySQL官网2.2 下载MySQL安装包三、环境配置工作3.1 解压软件包3.2 新建mysql.inI配置文件3.3 设置环境变量四、MySQL的初始化设置4.1 打开cmd工具4.2 切换目录4.…

ubuntu22.04上如何创建有privilege权限,有固定自定义IP的空容器

需求背景: 我想用docker来隔离自己的主机环境,来创建一个隔离的空白全新的开发环境,并且使之有固定的IP,在里面可以自由更新下载各种编译依赖,具有privileged权限的容器,以下是操作实现的具体步骤 查看do…

ssh打开远程vscode

如果想要远程打开其他终端的vscode,首先要知道远程终端的ip地址和用户名称以及用户密码 1、打开本地vscode 2、点击左下角蓝色区域 3、页面上部出现如下图,点击ssh,我这里已经连接,所以是connect to host 4、选择Add New SSH Host…

iOS--编译链接的过_1

iOS 开发中使用的是编译语言,所谓编译语言是在执行的时候,必须先通过编译器生成机器码,机器码可以直接在CPU上执行,所以执行效率较高,是使用 Clang / LLVM 来编译的。LLVM是一个模块化和可重用的编译器和工具链技术的集…

ElasticSearch学习--数据聚合

介绍 数据聚合可以帮助我们对海量的数据进行统计分析,如果结合kibana,我们还能形成可视化的图形报表。自动补全可以根据用户输入的部分关键字去自动补全和提示。数据同步可以帮助我们解决es和mysql的数据一致性问题。集群可以帮助我们了解结构和不同节点…

从简单线性回归到TensorFlow深度学习

大家好,人工智能近年来变得越来越流行,学习人工智能的需求也随之增加,尤其是许多IT专业人士希望利用机器学习的强大功能,但面临不小的挑战,尤其是在理论和数学上。 步骤1:线性回归 线性回归是一种统计学中…