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()函数接受两个参数:文件名和模式。 有四种不同的方法(模式)可以打开文件࿱…...
记录C#导出数据慢的优化方法
Winform程序将数据库中的历史数据导出到Excel中速度慢,导出1000多条数据优化前需要40秒,优化后只需要2秒,4万条数据只需要10秒。 优化前: for (int i 0; i < myDGV.Columns.Count; i) {worksheet.Cells[1, i 1] myDGV.Col…...
Android批量加载图片OOM问题
Android批量加载图片OOM问题 前言使用内存缓存使用磁盘缓存处理配置更改 前言 将单个位图加载到界面中非常简单,但如果您需要同时加载较大的一组图片,则操作起来会比较复杂。实际上,在许多情况下(比如使用 ListView、GridView 或…...
SNAT与DNAT公私网地址转换
前言 SNAT和DNAT是两种重要的网络地址转换技术,它们允许内部网络中的多个主机共享单个公共IP地址,或者将公共IP地址映射到内部网络中的特定主机。这些技术在构建企业级网络和互联网应用程序时非常重要,因为它们可以帮助保护内部网络安全&…...
快速上手Spring Boot整合,开发出优雅可靠的Web应用!
SpringBoot 1,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数据库版本控制与迁移 在软件开发的过程中,数据库版本控制和迁移是非常重要的一部分。这些过程确保了数据库的结构及数据的追踪和更新。在本篇博客中,我们将介绍如何使用Markdown语法来编写MySQL数据库版本控制与迁移的相关内容。 1. 什么是MySQL…...
js判断对象是否为空
给定一个对象或数组,判断它是否为空。 一个空对象不包含任何键值对。 一个空数组不包含任何元素。 输入:obj {"a": 1, "b": 2} 输出:false 解释:这个对象有两个键值对,所以它不为空。var isObje…...
2024前端面试准备之HTML篇
全文链接 1. doctype的作用是什么 DOCTYPE是html5标准网页声明,且必须声明在HTML⽂档的第⼀⾏。来告知浏览器的解析器⽤什么⽂档标准解析这个⽂档,不同的渲染模式会影响到浏览器对于 CSS 代码甚⾄ JavaScript 脚本的解析 ⽂档解析类型有: BackCompat:怪异模式,浏览器使…...
devOps系列(八)efk+prometheus+grafana日志监控和告警
前言 作者目前打算分享一期关于devOps系列的文章,希望对热爱学习和探索的你有所帮助。 文章主要记录一些简洁、高效的运维部署指令,旨在 记录和能够快速地构建系统。就像运维文档或者手册一样,方便进行系统的重建、改造和优化。每篇文章独立…...
考研英语单词29
Day 29 unify v.统一,使成一体【union n.结合,联合,工会,团结 unity n.团结,统一,协调】 offend v.冒犯,使不愉快【offender n.冒犯者 offensive a.冒犯的,无礼的】 d…...
spring-security 过滤器
spring-security过滤器 版本信息过滤器配置过滤器配置相关类图过滤器加载过程创建 HttpSecurity Bean 对象创建过滤器 过滤器作用ExceptionTranslationFilter 自定义过滤器 本章介绍 spring-security 过滤器配置类 HttpSecurity,过滤器加载过程,自定义过…...
掌握这7种软件设计原则,让你的代码更优雅
掌握这7种软件设计原则,让你的代码更优雅 在软件开发过程中,设计原则是非常重要的指导方针,它们可以帮助我们创建出更加清晰、可维护和可扩展的软件系统。本文将介绍7种常见的软件设计原则,并解释它们如何提升代码质量。 1. 单…...
Flutter自定义tabbar任意样式
场景描述 最近在使用遇到几组需要自定义的tabbar或者类似组件,在百度查询资料中通常,需要自定义 TabIndicator extends Decoration 比如上图中的带圆角的指示器这样实现 就很麻烦, 搜出来的相关也是在此之处上自己画,主要再遇…...
Java设计模式【策略模式】
一、前言 1.1 背景 针对某种业务可能存在多种实现方式,传统方式是通过传统if…else…或者switch代码判断; 弊端: 代码可读性差扩展性差难以维护 1.2 简介 策略模式是一种行为型模式,它将对象和行为分开,将行为定…...
(13)Hive调优——动态分区导致的小文件问题
前言 动态分区指的是:分区的字段值是基于查询结果自动推断出来的,核心语法就是insertselect。 具体内容指路文章: https://blog.csdn.net/SHWAITME/article/details/136111924?spm1001.2014.3001.5501文章浏览阅读483次,点赞15次…...
【linux】使用g++调试内存泄露:AddressSanitizer
1、简介 AddressSanitizer(又名 ASan)是 C/C++ 的内存错误检测器。它可以用来检测: 释放后使用(悬空指针) 堆缓冲区溢出 堆栈缓冲区溢出 全局缓冲区溢出 在作用域之后使用 初始化顺序错误 内存泄漏这个工具非常快,只将被检测的程序速度减慢约2倍,而Valgrind将会是程序…...
第三百五十七回
文章目录 1. 概念介绍2. 使用方法2.1 List2.2 Map2.3 Set 3. 示例代码4. 内容总结 我们在上一章回中介绍了"convert包"相关的内容,本章回中将介绍collection.闲话休提,让我们一起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…...
router.push(‘/‘)跳转不触发重定向
我来帮你分析为什么 router.push(/) 没有按照预期跳转到 /fenlei 路径。 首先让我查看相关的代码文件: router/index.js{path: /,component: Layout,redirect: /fenlei},已查看文件 index.vue 225-240 已查看文件 index.js 65-85 现在让我查看更多上下文,…...
实战指南:基于快马AI生成贴合业务场景的问卷系统,超越通用opencode
在开发一个在线问卷调查系统时,很多开发者会直接使用现成的opencode或开源组件。但实际业务中,通用方案往往难以完全匹配特定需求。最近我在InsCode(快马)平台上尝试了一个实战项目,通过AI生成高度定制化的问卷系统后台API,效果远…...
别再手动另存为了!用Python脚本5分钟搞定上百个Excel文件的格式转换(附完整代码)
别再手动另存为了!用Python脚本5分钟搞定上百个Excel文件的格式转换(附完整代码) 你是否曾经面对过这样的场景:电脑里堆积着上百个老旧的.xls格式Excel文件,每次需要使用时都得手动一个个"另存为"xlsx格式&a…...
如何快速打造现代化Windows提示界面:ModernFlyouts终极指南
如何快速打造现代化Windows提示界面:ModernFlyouts终极指南 【免费下载链接】ModernFlyouts A modern Fluent Design replacement for the old Metro themed flyouts present in Windows. 项目地址: https://gitcode.com/gh_mirrors/mo/ModernFlyouts 你是否…...
3步安全卸载:EdgeRemover的非强制解决方案
3步安全卸载:EdgeRemover的非强制解决方案 【免费下载链接】EdgeRemover PowerShell script to remove Microsoft Edge in a non-forceful manner. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover Windows Edge卸载过程中如何确保系统安全&#x…...
CVE-2016-2183漏洞自查与修复指南:你的Nginx/Apache还在用有问题的SSL/TLS协议吗?
CVE-2016-2183漏洞深度解析与实战修复:从检测到防护的全链路方案 凌晨三点,运维团队的告警系统突然响起——安全扫描报告显示生产环境存在SSL/TLS协议信息泄露风险。这不是普通的漏洞警报,而是可能直接导致加密通信被破解的CVE-2016-2183。作…...
哔咔漫画下载器:多线程极速下载完整指南
哔咔漫画下载器:多线程极速下载完整指南 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器,带图形界面 带收藏夹,已打包exe 下载速度飞快 项目地址: https://gitcode.com/gh_mirrors/pi/pi…...
番茄小说下载器:打造个人数字图书馆的完整攻略
番茄小说下载器:打造个人数字图书馆的完整攻略 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 你是否曾遇到过网络信号不佳时无法追更小说的烦恼?或者希…...
PhotoMaker行业应用报告:广告、影视与游戏领域的案例分析
PhotoMaker行业应用报告:广告、影视与游戏领域的案例分析 【免费下载链接】PhotoMaker 项目地址: https://ai.gitcode.com/hf_mirrors/TencentARC/PhotoMaker PhotoMaker是一款通过堆叠ID嵌入技术实现逼真人物照片定制的AI工具,能够帮助创作者快…...
基于WPS云服务架构的Vue文档预览组件技术实现与性能优化
基于WPS云服务架构的Vue文档预览组件技术实现与性能优化 【免费下载链接】wps-view-vue wps在线编辑、预览前端vue项目,基于es6 项目地址: https://gitcode.com/gh_mirrors/wp/wps-view-vue 在微前端架构和云原生应用日益普及的技术背景下,企业级…...
