Python中读取和写入文件的例子

下面是一个Python中读取和写入文件的完整例子,包括了打开文件、读取内容、写入内容以及关闭文件的基本步骤。此外,还会展示如何使用`with`语句来自动管理资源。

### 示例:读取文件

假设我们有一个名为`sample.txt`的文本文件,其内容如下:

```
Hello,
This is a sample text file.
It contains multiple lines
and is used to demonstrate
file reading in Python.
```

现在,我们将编写一个Python脚本来读取这个文件的内容。

```python
# 定义文件名
file_name = 'sample.txt'

# 使用with语句自动管理资源,打开文件用于读取
with open(file_name, 'r') as file:
    # 读取整个文件内容
    content = file.read()
    # 打印文件内容
    print("文件内容:")
    print(content)
    # 按行读取文件
    print("\n文件内容,按行读取:")
    for line in file:
        print(line.strip())  # strip()移除字符串首尾的空白字符和换行符

# 文件在with语句块结束时自动关闭,不需要显式调用file.close()
```

### 示例:写入文件

现在,我们将创建一个新的Python脚本,向一个名为`newfile.txt`的文件中写入一些文本。

```python
# 定义新文件的文件名
new_file_name = 'newfile.txt'

# 使用with语句自动管理资源,打开文件用于写入
# 'w'模式会覆盖文件内容,如果需要追加内容,应使用'a'模式
with open(new_file_name, 'w') as file:
    # 写入多行文本到文件
    file.write("第一行文本\n")
    file.write("第二行文本\n")
    file.write("第三行文本\n")

# 文件在with语句块结束时自动关闭

# 再次打开同一个文件,追加更多文本
with open(new_file_name, 'a') as file:
    file.write("这是追加的第四行文本\n")

# 打印写入文件的内容以确认
with open(new_file_name, 'r') as file:
    print("写入并追加后的文件内容:")
    print(file.read())
```

### 错误处理

在处理文件时,可能会遇到各种错误,例如文件不存在。以下是如何使用`try`和`except`语句来处理这些错误的示例:

```python
# 尝试打开一个不存在的文件
try:
    with open('non_existent_file.txt', 'r') as file:
        data = file.read()
except FileNotFoundError:
    print("错误:找不到文件 'non_existent_file.txt'")

# 尝试写入一个不可写文件
try:
    with open('read_only_file.txt', 'w') as file:  # 假设该文件为只读
        file.write("尝试写入只读文件")
except IOError as e:
    print(f"错误:无法写入文件,原因 - {e}")
```

### 注意事项

- 打开文件时,务必使用正确的文件路径和模式。
- 写入文件时,要注意文件的权限,确保程序有相应的写入权限。
- 使用`with`语句可以确保文件在操作完成后正确关闭,即使发生异常也是如此。
- 在进行文件操作时,始终考虑可能出现的异常,并妥善处理。

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

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

相关文章

数据架构简介

概念定义 数据架构是一套规则、政策、标准和模型,用于管理和定义收集的数据类型,以及如何在组织及其数据库中使用、存储、管理和集成数据。 数据架构是实现数据规划的载体,是揭示业务本质、描述企业中数据关系的全景视图,是统一数…

Web前端开发 - 4 - CSS3动画

CSS3动画 一、 设计2D变换二、 设计3D变换三、 设计过渡动画四、设计帧动画 一、 设计2D变换 transform : none | <transform-function> /* <transform-function> 设置变换函数&#xff0c;可以是一个或多个变换函数列表。函数包括: martrix(x缩放,x倾斜,y倾斜,y…

刷代码随想录有感(66):回溯算法——组合问题的优化(剪枝)

代码&#xff1a;将for循环中i的搜索范围进行缩小&#xff0c;免去多余的不可能符合条件的操作。 for(int i start; i < n-(k-tmp.size())1;i) 实质是剪枝&#xff0c;拿n4,k4作比较&#xff1a; 显然结果只可能是[1,2,3,4]&#xff0c;选取顺序只可能是1-2-3-4&#xff…

c#多态性的应用

设计一个电脑游戏&#xff0c;游戏中有猪、牛、兔子、青蛙、鸭子等动物&#xff0c;这些动 物都继承于Vertebrata 类&#xff08;脊椎动物类&#xff09;&#xff0c;Vertebrata类有一个抽象方法Display()&#xff0c;每个动 物都从Vertebrata 类那里继承并重写了Display()方法…

windows下mysql5.6下载安装(多实例安装)

目录 1、下载 2、安装步骤 3、mysql多实例安装 1、下载 http://dev.mysql.com/downloads/windows/installer/5.6.html 2、安装步骤 我们采用自定义安装模式&#xff1a;选择32位或64位 默认即可&#xff1a; 说明&#xff0c;如果没有该页面就上一步&#xff0c;选择高级选…

OpenAI推出旗舰AI模型GPT-4o并免费开放

&#x1f989; AI新闻 &#x1f680; OpenAI推出旗舰AI模型GPT-4o并免费开放 摘要&#xff1a; OpenAI 未来的产品将以免费为优先&#xff0c;以让更多人使用为目标。OpenAI 发布了桌面版本的程序和更新后的 UI&#xff0c;更加简单自然。推出了新一代大模型 GPT-4o&#xf…

经典神经网络(8)GAN、CGAN、DCGAN、LSGAN及其在MNIST数据集上的应用

经典神经网络(8)GAN、CGAN、DCGAN、LSGAN及其在MNIST数据集上的应用 1 GAN的简述及其在MNIST数据集上的应用 GAN模型主导了生成式建模的前一个时代&#xff0c;但由于训练过程中的不稳定性&#xff0c;对GAN进行扩展需要仔细调整网络结构和训练考虑&#xff0c;因此GANs虽然在…

金融科技员工一年赚多少钱?富如恒生电子,穷如长亮科技

在本篇文章中&#xff0c;我们继续分析四家金融科技公司的数据&#xff0c;本次站在员工视角来看&#xff08;链接&#xff0c;这四家公司的更详细内容&#xff09;。 先说结论。 2023年&#xff0c;如果你是恒生电子的普通员工&#xff0c;那年薪在35万元&#xff1b;如果你在…

OSPF多区域通信基础实验

基本概念了解&#xff1a; 网络设备接口速率、 Ethernet 100MB GE 1000MB serial接口 1.544MB area 0 骨干区域&#xff08;backbone&#xff09; area 0area0.0.0.0 不是area 0 非骨干区域 ar area 256area 0.0.1.0 实验拓扑如下&#xff1a;要求PC1能够访问PC2 &#xff08;跨…

JAVA多线程并发(二)-- volatile和synchronized 详解

在Java并发编程中&#xff0c;volatile和synchronized是两个至关重要的关键字&#xff0c;它们帮助开发者解决多线程环境下的可见性、原子性和有序性问题。 一. 简介 1. Volatile volatile是一个类型修饰符&#xff0c;用来确保对一个变量的读取和写入操作不会被编译器重排序…

oracle多条重复数据,取最新的

1、原理讲解-可直接看2 筛选出最新的 SELECT * FROM ( SELECT t.*, ROW_NUMBER() OVER (PARTITION BY LOCALAUTHID ORDER BY LASTUPDATETIME DESC) AS rn FROM USER_LOCALAUTH_STATE t ) t WHERE t.rn 1; 解释&#xff1a; 这个序号是基于[LOCALAUTHID]字段进行分…

外网ip地址怎么获取?快解析

大家都清楚互联网是通过ip地址通信的&#xff0c;ip地址又分内网ip和外网ip。内网ip只能在内网使用&#xff1b;而外网ip作为电脑唯一标识&#xff0c;可在公网使用。那么外网ip地址怎么获取呢&#xff1f; 外网ip是网络运营商分配给用户的。目前最常见的两种上网方式一个是拉…

图文详解JUC:Wait与Sleep的区别与细节

目录 一.Wait() 二.Sleep() 三.总结Wait()与Sleep()的区别 一.Wait() 在Java中&#xff0c;wait() 方法是 Object类中的一个方法&#xff0c;用于线程间的协作。当一个线程调用wait() 方法时&#xff0c;它会释放对象的锁并进入等待状态&#xff0c;直到其他线程调用相同对…

JVM调优-调优原则和原理分析

1.写在前面 对于JVM调优这个话题&#xff0c;可能大部分程序员都听过这个名词。 但是绝大多数程序员&#xff0c;都没有真真实实去干过&#xff0c;都没有真实的实践过。也不懂得如何调优&#xff1f;不知道要调成怎么样&#xff1f; 那今天咋们就对这个话题来展开描述一下&…

洛谷 P3372:线段树 1 ← 分块算法模板(区间更新、区间查询)

【题目来源】https://www.luogu.com.cn/problem/P3372【题目描述】 如题&#xff0c;已知一个数列&#xff0c;你需要进行下面两种操作&#xff1a; &#xff08;1&#xff09;将某区间每一个数加上 k。 &#xff08;2&#xff09;求出某区间每一个数的和。【输入格式】 第一行…

二叉树——初解

二叉树 树树的概念树的性质 二叉树二叉树的概念二叉树的性质二叉树的实现方式数组构建左孩子右兄弟法构建指针构建 树 树的概念 在计算机科学中&#xff0c;树&#xff08;Tree&#xff09;是一种重要的非线性数据结构&#xff0c;它由若干节点&#xff08;Node&#xff09;组…

Java面经学习2

来源 https://www.nowcoder.com/discuss/619573767051800576 1.一面内容 RocketMQ延时消息&#xff08;项目用到了&#xff09;底层怎么实现的&#xff08;不会&#xff09; 消息量太大导致读消息延迟时间很长怎么办 redis为什么快&#xff08;说了内存、数据结构优化、单线…

Chromium 调试指南2024 Windows11篇-调试变量监视(十)

1. 前言 设置断点和监视变量是调试过程中常用的两种技术手段。通过设置断点&#xff0c;我们可以暂停程序的执行并检查程序的内部状态&#xff0c;而监视变量则可以帮助我们实时查看程序中关键变量的值。本文将介绍如何在Chromium项目中进行断点设置和变量监视&#xff0c;帮助…

java内容快速回顾+SSM+SpringBoot简要概述

文章目录 java基础知识基本知识列表面对对象堆与栈的关系值修改与引用修改异常&#xff1a;错误异常 SSMspringMVCServletSpringMVC&#xff1a;基于 Servlet的 Spring Web 框架&#xff0c; spring控制反转 IoC(Inversion of Control)面向切面 Aop MybatisJDBCMybatis SpringB…

Git 基础使用(1) 入门指令

文章目录 Git 作用Git 安装Git 使用Git 仓库配置Git 工作原理Git 修改添加Git 查看日志Git 修改查询Git 版本回退 概念补充 Git 作用 Git 是一种分布式版本控制系统&#xff0c;它旨在追踪文件和文件夹的更改&#xff0c;并协助多人协作开发项目。 Git 安装 &#xff08;Lin…