python--------修改桌面文件内容

目录

  • 1. 文件的读写
    • 1. 写入文件
    • 2. 读取文件
    • 3. 追加内容到文件
  • 2.file_path 的常见方法
    • 1. 绝对路径
    • 2. 相对路径
    • 3. 使用 os.path 模块构建路径
    • 5. 路径操作
    • 5. 用户主目录路径
  • 4. 修改文件内容
      • 1.将修改后的内容写回文件
      • 2. 逐行处理文件内容
      • 3. 使用上下文管理器确保文件安全

1. 文件的读写

1. 写入文件

要将内容写入文件,你可以使用 open() 函数,并指定写入模式(‘w’)。如果文件不存在,它将被创建;如果文件已存在,它将被覆盖。

# 定义文件路径
file_path = "example.txt"# 要写入的内容
content = "This is a line of text.\nThis is another line of text.\n"# 打开文件并写入内容
try:with open(file_path, 'w', encoding='utf-8') as file:file.write(content)print(f"Successfully wrote to {file_path}")
except IOError as e:print(f"An error occurred: {e}")

2. 读取文件

要读取文件的内容,你可以使用 open() 函数,并指定读取模式(‘r’)。

# 定义文件路径
file_path = "example.txt"# 打开文件并读取内容
try:with open(file_path, 'r', encoding='utf-8') as file:content = file.read()print("File content:")print(content)
except IOError as e:print(f"An error occurred: {e}")

3. 追加内容到文件

如果你想在文件的末尾追加内容而不是覆盖它,可以使用追加模式(‘a’)。

# 定义文件路径
file_path = "example.txt"# 要追加的内容
additional_content = "This line is appended to the file.\n"# 打开文件并追加内容
try:with open(file_path, 'a', encoding='utf-8') as file:file.write(additional_content)print(f"Successfully appended to {file_path}")
except IOError as e:print(f"An error occurred: {e}")

代码说明

  • with open(…) as file:: 使用 with 语句来打开文件,可以确保在文件操作完成后自动关闭文件,即使在操作过程中发生异常。
  • encoding=‘utf-8’: 指定文件的编码格式为 UTF-8,以确保可以正确处理多语言字符。
  • 异常处理: 使用 try-except 块来捕获和处理可能的文件操作错误,例如文件不存在或权限问题。

2.file_path 的常见方法

以下是一些关于如何使用 file_path 的常见方法和示例:

1. 绝对路径

绝对路径是从文件系统的根目录开始的完整路径。

# Windows 示例
file_path = "C:\\Users\\username\\Desktop\\example.txt"# macOS/Linux 示例
file_path = "/home/username/Desktop/example.txt"

2. 相对路径

相对路径是相对于当前工作目录的路径。

如果 example.txt 位于当前目录下的 subdir 子目录中:

file_path = "subdir/example.txt"

3. 使用 os.path 模块构建路径

为了确保路径在不同操作系统上的兼容性,建议使用 os.path 模块来构建路径。这样可以自动处理路径分隔符的差异。

import os# 获取当前工作目录
current_dir = os.getcwd()# 构建文件路径
file_path = os.path.join(current_dir, "subdir", "example.txt")# 打印文件路径
print(f"File path: {file_path}")

5. 路径操作

os.path 模块还提供了许多用于路径操作的函数,例如:

os.path.exists(file_path): 检查路径是否存在。
os.path.isfile(file_path): 检查路径是否为文件。
os.path.isdir(file_path): 检查路径是否为目录。
os.path.basename(file_path): 获取路径的最后一部分(通常是文件名)。
os.path.dirname(file_path): 获取路径的目录部分。
import osfile_path = "/home/username/Desktop/example.txt"# 检查路径是否存在
if os.path.exists(file_path):print("Path exists.")# 检查是否为文件
if os.path.isfile(file_path):print("This is a file.")# 获取文件名
file_name = os.path.basename(file_path)
print(f"File name: {file_name}")# 获取目录名
dir_name = os.path.dirname(file_path)
print(f"Directory name: {dir_name}")

5. 用户主目录路径

如果需要访问用户的主目录,可以使用 os.path.expanduser(“~”)。


import os# 获取用户主目录路径
home_dir = os.path.expanduser("~")# 构建文件路径
file_path = os.path.join(home_dir, "Desktop", "example.txt")# 打印文件路径
print(f"File path: {file_path}")

总结
使用 os.path.join() 来构建路径,以确保跨平台兼容性。
使用 os.path 模块中的函数来处理和操作路径。
确保路径的编码和格式正确,以避免文件操作错误。

4. 修改文件内容

在读取文件内容后,你可以对内容进行修改。例如,替换某些文本或添加新内容。

# 假设我们要将所有的 "old_text" 替换为 "new_text"
modified_content = content.replace("old_text", "new_text")# 打印修改后的内容
print("Modified content:")
print(modified_content)

1.将修改后的内容写回文件

要将修改后的内容写回文件,你可以使用 open() 函数和 write() 方法。

# 将修改后的内容写回文件
try:with open(file_path, 'w', encoding='utf-8') as file:file.write(modified_content)print(f"Successfully wrote modified content to {file_path}")
except IOError as e:print(f"An error occurred: {e}")

2. 逐行处理文件内容

如果文件较大,或者你需要逐行处理内容,可以使用 for 循环逐行读取文件。

file_path = "example.txt"# 逐行读取和处理文件内容
try:with open(file_path, 'r', encoding='utf-8') as file:lines = file.readlines()# 修改每一行modified_lines = []for line in lines:modified_line = line.replace("old_text", "new_text")modified_lines.append(modified_line)# 将修改后的内容写回文件with open(file_path, 'w', encoding='utf-8') as file:file.writelines(modified_lines)print(f"Successfully processed and wrote back to {file_path}")
except IOError as e:print(f"An error occurred: {e}")

3. 使用上下文管理器确保文件安全

使用 with 语句可以确保文件在操作完成后自动关闭,即使在操作过程中发生异常。

总结
读取文件:使用 open() 和 read() 方法。
修改内容:可以使用字符串方法(如 replace())或逐行处理。
写回文件:使用 open() 和 write() 方法。
逐行处理:适用于较大的文件或需要逐行操作的场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/79919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爱普生VG7050EFN压控晶振在小基站的应用优势

在 5G 通信时代,小基站作为提升网络覆盖和容量的重要一环,小基站的稳定运行对于保障用户流畅的通信体验起着关键作用。而在小基站的核心组件中,时钟信号源的质量直接影响着通信质量和设备性能。爱普生VG7050EFN晶振凭借其高性能、小尺寸和低功…

人工智能如何革新数据可视化领域?探索未来趋势

在当今数字化时代,数据如同汹涌浪潮般不断涌现。据国际数据公司(IDC)预测,全球每年产生的数据量将从 2018 年的 33ZB 增长到 2025 年的 175ZB。面对如此海量的数据,如何有效理解和利用这些数据成为了关键问题。数据可视…

精益数据分析(42/126):移动应用商业模式的深度剖析与实战要点

精益数据分析(42/126):移动应用商业模式的深度剖析与实战要点 在创业和数据分析的学习之路上,我们持续探索不同商业模式的奥秘,今天聚焦于移动应用商业模式。我希望和大家一起进步,深入解读《精益数据分析…

未来 CSS:变量、容器查询与新特性的探索

引言:CSS 演进与未来展望 在前端开发的快速发展浪潮中,CSS 已从简单的样式标记语言蜕变为构建现代设计系统的强大基础。根据 HTTP Archive 的 Web Almanac 的调查,超过 86% 的网站已采用至少一项现代 CSS 特性,这一数字仍在持续攀…

概统期末复习--速成

随机事件及其概率 加法公式 推三个的时候ABC,夹逼准则 减法准则 除法公式 相互独立定义 两种分析 两个解法 古典概型求概率(排列组合) 分步相乘、分类相加 全概率公式和贝叶斯公式 两阶段问题 第一个小概率*A在小概率的概率。。。累计 …

论微服务架构设计及应用

目录 摘要(300~330字) 正文(2000~2500字,2200字为宜) 背景介绍(500字做左右) 论点论据(1500字做左右)

【东枫科技】AMD / Xilinx Alveo™ V80计算加速器卡

AMD / Xilinx Alveo™ V80计算加速器卡 AMD/Xilinx Alveo ™ V80计算加速器卡是一款功能强大的计算加速器,基于7nm Versal™ 自适应SoC架构而打造。 AMD/Xilinx Alveo V80卡设计用于内存密集型任务。 这些任务包括HPC、数据分析、网络安全、传感器处理、计算存储和…

基于大模型的自然临产阴道分娩全流程预测与方案研究报告

目录 一、引言 1.1 研究背景与目的 1.2 研究意义 1.3 国内外研究现状 二、大模型技术原理与应用概述 2.1 大模型基本原理 2.2 在医疗领域的应用现状 2.3 用于分娩预测的优势 三、术前预测与准备方案 3.1 产妇身体状况评估指标 3.2 大模型预测流程与方法 3.3 基于预…

macbook install chromedriver

# 打开 Chrome 访问以下地址查看版本 chrome://version/# 终端查看版本号 (示例输出: 125.0.6422.113) /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version测试:

LeetCode 790 多米诺和托米诺平铺 题解

对于本题不去看LeetCode的评论区和题解很难想到如何去dp,毕竟就算再怎么枚举也很难找到适用于面向结果的规律。所以对于题解我建议大家还是去看一下灵神给的题解,以下是灵神汇总的图,如果能看懂的话,对于解决题目有很大的帮助。 根…

Day17 聚类算法(K-Means、DBSCAN、层次聚类)

一、聚类算法 1. K-Means 聚类 原理:K-Means 是一种基于划分的聚类算法,目标是将 n n n 个样本划分到 k k k 个簇中,使得簇内样本的相似度尽可能高,簇间样本的相似度尽可能低。算法通过迭代的方式,不断更新簇的质心…

【编程干货】本地用 Ollama + LLaMA 3 实现 Model Context Protocol(MCP)对话服务

模型上下文协议(MCP)本身提供的是一套标准化的通信规则和接口,简化了客户端应用的开发。 MCP 实际上是一套规范,官方把整套协议分成「传输层 协议层 功能层」三大块,并对初始化握手、能力协商、数据/工具暴露、安全…

永磁同步电机控制算法-基于新型趋近律的反馈线性化滑模控制

一、原理介绍 针对永磁同步电机传统PID矢量控制方式无法实现d、q轴电流完全解耦控制的问题,运用反馈线性化理论实现永磁同步电机转速和d轴电流解耦。针对反馈线性化导致的鲁棒性下降问题,利用滑模控制方式提高系统鲁棒性,引入新型双幂次趋近…

德尔菲法和层次分析法是什么

德尔菲法和层次分析法是什么 德尔菲法和层次分析法是两种常用的决策分析方法 德尔菲法 定义:德尔菲法是一种采用背对背的通信方式征询专家小组成员的预测意见,经过几轮征询,使专家小组的预测意见趋于集中,最后做出符合市场未来发展趋势的预测结论。实施步骤 组成专家小组…

【windows】win10部分版本的sxs文件下载

Win10部分版本的sxs文件下载 win10 1703 链接: https://pan.baidu.com/s/13O5djVSWIhIjBP1ZVtORAA?pwdsdpp 提取码: sdpp win10 1809 链接: https://pan.baidu.com/s/1vUEMQWqWcyTicHLJNox99w?pwddfx4 提取码: dfx4 win10 1903,1909 链接: https://pan.baidu.com/s/1MoKcm3N…

Java项目部署-Springboot+Vue网页部署上线全教程

SpringbootVue网页部署上线全教程 文章目录 SpringbootVue网页部署上线全教程1.环境说明2.Mysql安装部署2.1 安装并修改密码2.2 防火墙开放 3.Spring Boot项目打包3.1 配置公网ip3.2 安装 Maven3.3 使用 Maven 打包 Spring Boot 项目3.4 Centos运行Jar包3.4.1 安装 Java 1.8 环…

FISCO BCOS【初体验笔记】

飞梭区块链搭建初体验笔记 环境部署创建四个节点的飞梭区块链用的VMware17 centos 7.9 区块链是飞梭2.0用的webase-frontJava环境的正确安装Webase-front搭建 智能合约设计一点合约调试笔记 智能合约abi文件转为go文件后端项目配置相关工具linux常用命令(防忘记&…

内容社区系统开发文档

1 系统分析 1.1 项目背景 1.2 需求分析 2 系统设计 2.1 系统功能设计 2.2 数据库设计 2.2.1 数据库需求分析 2.2.2 数据库概念结构设计 2.2.3 数据库逻辑结构设计 2.2.4 数据库物理结构设计 2.2.5 数据库视图设计 2.2.6 函数设计 2.2.7 存储过程设计 2.2.8 触发器…

BigemapPro小技巧:调整线方向及延长线

今天为大家分享两个 BigemapPro 处理矢量数据的小技巧,分别是调整线方向和延长线要素,掌握这些技巧能够大幅提升数据处理的效率和准确性。 01 调整线方向 在BigemapPro中,线要素其实是带有方向属性的,正常情况下看不出来 但是如果…

nt!MiSessionAddProcess函数分析和nt!MmSessionSpace全局变量的关系

第一部分: 1: kd> g Breakpoint 42 hit nt!MiSessionAddProcess: 80ab2fbe 55 push ebp 1: kd> kc # 00 nt!MiSessionAddProcess 01 nt!MmCreateProcessAddressSpace 02 nt!PspCreateProcess 03 nt!NtCreateProcessEx 04 nt!_KiSystemServic…