当前位置: 首页 > news >正文

Python 文件处理指南:打开、读取、写入、追加、创建和删除文件

文件处理是任何Web应用程序的重要部分。Python有多个用于创建、读取、更新和删除文件的函数。

文件处理

在Python中处理文件的关键函数是open()函数。open()函数接受两个参数:文件名和模式。

有四种不同的方法(模式)可以打开文件:

  • “r” - 读取 - 默认值。打开一个文件以进行读取,如果文件不存在则报错。
  • “a” - 追加 - 打开一个文件以进行追加,如果文件不存在则创建文件。
  • “w” - 写入 - 打开一个文件以进行写入,如果文件不存在则创建文件。
  • “x” - 创建 - 创建指定的文件,如果文件存在则返回错误。

此外,您可以指定文件是二进制模式还是文本模式:

  • “t” - 文本 - 默认值。文本模式。
  • “b” - 二进制 - 二进制模式(例如,图像)。

语法

要打开一个文件进行读取,只需指定文件的名称:

f = open("demofile.txt")

上述代码与以下代码等效:

f = open("demofile.txt", "rt")

因为"r"表示读取,"t"表示文本,它们是默认值,您不需要指定它们。

打开服务器上的文件

假设我们有以下文件,位于与Python相同的文件夹中:

demofile.txt
Hello! Welcome to demofile.txt
This file is for testing purposes.
Good Luck!

要打开该文件,使用内置的open()函数。

open()函数返回一个文件对象,该对象具有用于读取文件内容的read()方法:

f = open("demofile.txt", "r")
print(f.read())

如果文件位于不同的位置,您将不得不指定文件路径,如下所示:

f = open("D:\\myfiles\\welcome.txt", "r")
print(f.read())

只读取文件的一部分

默认情况下,read()方法返回整个文本,但您也可以指定要返回多少个字符:

f = open("demofile.txt", "r")
print(f.read(5))

读取行

您可以使用readline()方法返回一行:

f = open("demofile.txt", "r")
print(f.readline())

通过调用readline()两次,您可以读取前两行:

f = open("demofile.txt", "r")
print(f.readline())
print(f.readline())

通过循环遍历文件的各行,您可以一行一行地读取整个文件:

f = open("demofile.txt", "r")
for x in f:print(x)

关闭文件

最佳实践是在使用完文件后始终关闭它。

f = open("demofile.txt", "r")
print(f.readline())
f.close()

写入现有文件

要写入现有文件,您必须向open()函数添加一个参数:

  • “a” - 追加 - 将追加到文件的末尾。
  • “w” - 写入 - 将覆盖任何现有内容。
f = open("demofile2.txt", "a")
f.write("Now the file has more content!")
f.close()

要检查文件是否位于不同的位置,您将不得不指定文件路径,如下所示:

f = open("demofile3.txt", "w")
f.write("Woops! I have deleted the content!")
f.close()

注意:使用"w"方法将覆盖整个文件。

创建新文件

要在Python中创建新文件,请使用open()方法,使用以下参数之一:

  • “x” - 创建 - 如果文件存在则返回错误。
  • “a” - 追加 - 如果指定的文件不存在,将创建文件。
  • “w” - 写入 - 如果指定的文件不存在,将创建文件。
f = open("myfile.txt", "x")

结果:创建了一个新的空文件!

f = open("myfile.txt", "w")

删除文件

要删除文件,您必须导入OS模块,并运行其os.remove()函数:

import os
os.remove("demofile.txt")

检查文件是否存在:

为了避免出现错误,您可能希望在尝试删除文件之前检查文件是否存在:

import os
if os.path.exists("demofile.txt"):os.remove("demofile.txt")
else:print("The file does not exist")

删除文件夹

要删除整个文件夹,请使用os.rmdir()方法:

import os
os.rmdir("myfolder")

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

相关文章:

Python 文件处理指南:打开、读取、写入、追加、创建和删除文件

文件处理是任何Web应用程序的重要部分。Python有多个用于创建、读取、更新和删除文件的函数。 文件处理 在Python中处理文件的关键函数是open()函数。open()函数接受两个参数:文件名和模式。 有四种不同的方法(模式)可以打开文件&#xff1…...

记录C#导出数据慢的优化方法

Winform程序将数据库中的历史数据导出到Excel中速度慢&#xff0c;导出1000多条数据优化前需要40秒&#xff0c;优化后只需要2秒&#xff0c;4万条数据只需要10秒。 优化前&#xff1a; for (int i 0; i < myDGV.Columns.Count; i) {worksheet.Cells[1, i 1] myDGV.Col…...

Android批量加载图片OOM问题

Android批量加载图片OOM问题 前言使用内存缓存使用磁盘缓存处理配置更改 前言 将单个位图加载到界面中非常简单&#xff0c;但如果您需要同时加载较大的一组图片&#xff0c;则操作起来会比较复杂。实际上&#xff0c;在许多情况下&#xff08;比如使用 ListView、GridView 或…...

SNAT与DNAT公私网地址转换

前言 SNAT和DNAT是两种重要的网络地址转换技术&#xff0c;它们允许内部网络中的多个主机共享单个公共IP地址&#xff0c;或者将公共IP地址映射到内部网络中的特定主机。这些技术在构建企业级网络和互联网应用程序时非常重要&#xff0c;因为它们可以帮助保护内部网络安全&…...

快速上手Spring Boot整合,开发出优雅可靠的Web应用!

SpringBoot 1&#xff0c;SpringBoot简介1.1 SpringBoot快速入门1.1.1 开发步骤1.1.1.1 创建新模块1.1.1.2 创建 Controller1.1.1.3 启动服务器1.1.1.4 进行测试 1.1.2 对比1.1.3 官网构建工程1.1.3.1 进入SpringBoot官网1.1.3.2 选择依赖1.1.3.3 生成工程 1.1.4 SpringBoot工程…...

MySQL高级特性篇(7)-数据库版本控制与迁移

MySQL数据库版本控制与迁移 在软件开发的过程中&#xff0c;数据库版本控制和迁移是非常重要的一部分。这些过程确保了数据库的结构及数据的追踪和更新。在本篇博客中&#xff0c;我们将介绍如何使用Markdown语法来编写MySQL数据库版本控制与迁移的相关内容。 1. 什么是MySQL…...

js判断对象是否为空

给定一个对象或数组&#xff0c;判断它是否为空。 一个空对象不包含任何键值对。 一个空数组不包含任何元素。 输入&#xff1a;obj {"a": 1, "b": 2} 输出&#xff1a;false 解释&#xff1a;这个对象有两个键值对&#xff0c;所以它不为空。var isObje…...

2024前端面试准备之HTML篇

全文链接 1. doctype的作用是什么 DOCTYPE是html5标准网页声明,且必须声明在HTML⽂档的第⼀⾏。来告知浏览器的解析器⽤什么⽂档标准解析这个⽂档,不同的渲染模式会影响到浏览器对于 CSS 代码甚⾄ JavaScript 脚本的解析 ⽂档解析类型有: BackCompat:怪异模式,浏览器使…...

devOps系列(八)efk+prometheus+grafana日志监控和告警

前言 作者目前打算分享一期关于devOps系列的文章&#xff0c;希望对热爱学习和探索的你有所帮助。 文章主要记录一些简洁、高效的运维部署指令&#xff0c;旨在 记录和能够快速地构建系统。就像运维文档或者手册一样&#xff0c;方便进行系统的重建、改造和优化。每篇文章独立…...

考研英语单词29

Day 29 unify v.统一&#xff0c;使成一体【union n.结合&#xff0c;联合&#xff0c;工会&#xff0c;团结 unity n.团结&#xff0c;统一&#xff0c;协调】 offend v.冒犯&#xff0c;使不愉快【offender n.冒犯者 offensive a.冒犯的&#xff0c;无礼的】 d…...

spring-security 过滤器

spring-security过滤器 版本信息过滤器配置过滤器配置相关类图过滤器加载过程创建 HttpSecurity Bean 对象创建过滤器 过滤器作用ExceptionTranslationFilter 自定义过滤器 本章介绍 spring-security 过滤器配置类 HttpSecurity&#xff0c;过滤器加载过程&#xff0c;自定义过…...

掌握这7种软件设计原则,让你的代码更优雅

掌握这7种软件设计原则&#xff0c;让你的代码更优雅 在软件开发过程中&#xff0c;设计原则是非常重要的指导方针&#xff0c;它们可以帮助我们创建出更加清晰、可维护和可扩展的软件系统。本文将介绍7种常见的软件设计原则&#xff0c;并解释它们如何提升代码质量。 1. 单…...

Flutter自定义tabbar任意样式

场景描述 最近在使用遇到几组需要自定义的tabbar或者类似组件&#xff0c;在百度查询资料中通常&#xff0c;需要自定义 TabIndicator extends Decoration 比如上图中的带圆角的指示器这样实现 就很麻烦&#xff0c; 搜出来的相关也是在此之处上自己画&#xff0c;主要再遇…...

Java设计模式【策略模式】

一、前言 1.1 背景 针对某种业务可能存在多种实现方式&#xff0c;传统方式是通过传统if…else…或者switch代码判断&#xff1b; 弊端&#xff1a; 代码可读性差扩展性差难以维护 1.2 简介 策略模式是一种行为型模式&#xff0c;它将对象和行为分开&#xff0c;将行为定…...

(13)Hive调优——动态分区导致的小文件问题

前言 动态分区指的是&#xff1a;分区的字段值是基于查询结果自动推断出来的&#xff0c;核心语法就是insertselect。 具体内容指路文章&#xff1a; https://blog.csdn.net/SHWAITME/article/details/136111924?spm1001.2014.3001.5501文章浏览阅读483次&#xff0c;点赞15次…...

【linux】使用g++调试内存泄露:AddressSanitizer

1、简介 AddressSanitizer(又名 ASan)是 C/C++ 的内存错误检测器。它可以用来检测: 释放后使用(悬空指针) 堆缓冲区溢出 堆栈缓冲区溢出 全局缓冲区溢出 在作用域之后使用 初始化顺序错误 内存泄漏这个工具非常快,只将被检测的程序速度减慢约2倍,而Valgrind将会是程序…...

第三百五十七回

文章目录 1. 概念介绍2. 使用方法2.1 List2.2 Map2.3 Set 3. 示例代码4. 内容总结 我们在上一章回中介绍了"convert包"相关的内容&#xff0c;本章回中将介绍collection.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的内容是col…...

新版Java面试专题视频教程——框架篇

新版Java面试专题视频教程——框架篇 框架篇 01-框架篇介绍02-Spring-单例bean是线程安全的吗03-Spring-AOP相关面试题04-Spring-事务失效的场景05-Spring-bean的生命周期5.1 BeanDefinition 06-Spring-bean的循环依赖(循环引用)6.1 一般对象的循环依…...

网络爬虫实战 | 上传以及下载处理后的文件

详细代码在文尾 以实现爬虫一个简单的(SimFIR (doctrp.top))网址为例,需要遵循几个步骤: 1. 分析网页结构 首先,需要分析该网页的结构,了解图片是如何存储和组织的。这通常涉及查看网页的HTML源代码,可能还包括CSS和JavaScript文件。检查图片URL的模式,看看是否有规律…...

Linux--shell编程中有关while循环的详细内容

文章关于while循环的内容目录 一、while循环 ​​​​​​​​​​​​​​二、无限循环 ​​​​​​​​​​​​​​三、case语句 ​​​​​​​四、跳出循环 ​​​​​​​​​​​​​​五、break ​​​​​​​六、continue​​​​​​​ ​​​​​​​一、w…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...