每天10分钟,带你一周精通Python:第8章处理文件

n8n实战指南:低代码自动化工作流从入门到精通 本文详细介绍了n8n低代码自动化工具的核心功能与实战应用,包括环境搭建、安全配置、AI节点优化及企业级部署方案。通过具体案例展示如何利用n8n实现电商订单处理、客服自动回复等复杂工作流,显著提升效率并降低错误率。适合开发者快速掌握低代码自动化技术。 阅读详情

每天10分钟,带你一周精通Python:第8章处理文件

太酷了!我们已经学到了本专栏中项目前的最后一章。在本章中,我们将坐习如何处理外部的文件。

在前面的第5章中,我们学会了如何使用input()函数得到用户的输入。而在有些情况下,让用户在我们的程序中输入数据可能不太现实,尤其是当我们的程序需要处理大量数据的情况下。这时,更加方便的方式是把需要的信息先保存到一个外部的文件中,并让我们的程序从这个文件中读取信息。在本章中,我们将要学习如何这么做。准备好了么?

8.1打开并读取文本文件

我们将要读取的第一种类型的文件是一个简单的有多行文字的文本文件。为了这么做,让我们首先创建一个包含了下列几行文本的文件。

Learn Python in One Day and Learn It Well
Python for Beginners with Hands-on Project
The only book you need to start coding in Python
immediately
http://www.learncodingfast.com/python

把这个文本文件保存为myfile.txt,并保存到桌面上。接下来,打开IDLE并输入下面的代码。把这段代码保存为fileOperation.py,也放到桌面上。

f=open ('myfile.txt','r')
firstline = f.readline()
secondline = f.readline()
print (firstline)
print (secondline)

f.close()

代码中的第一行打开了文件。在能够从文件中读取信息之前,我们需要打开文件(就像你需要打开kindle设备或者应用上的电子书才能读取信息一样)。 Open函数的作用就是这样,它需要两个参数。

  • 第一个参数是文件的路径。如果你没有把fileOperation.py和myfile.txt放在同一个目录下(在本例中都放在桌面上),你就需要把“myfile.txt”替换为真实保存文本文件的路径。比如,如果你把它保存在一个位于C盘,名叫“PythonFiles”的文件夹中,你就需要写成“C:\PythonFiles\myfile.txt”(需要是双反斜杠)。

  • 第二个参数是模式。它指定了文件使用什么方式打开。最常见的模式是:

  • r模式: 仅仅只读。

  • w模式: 仅仅只写。
    如果指定的文件不存在,它将会被创建。
    如果指定的文件存在,文件中任何已有的数据都将被擦除。

  • a模式: 用于添加。
    如果指定的文件不存在,它将会被创建。
    如果指定的文件存在,任何写入文件的数据将会自动添加到文件的末尾。

  • r+模式: 用于读写。

在打开文件后,下一条语句firstline=f.readline()从文件中读取第一行,并把它分配给变量firstline。

每次调用readline()函数,它都会从文件中读取新的一行。在我们的程序中,readline()调用了两次。因此前两行信息就会被读取。当你运行这个程序时,你将会得到下面的输出。

Learn Python in One Day and Learn It Well

Python for Beginners with Hands-on Project

你将会发现每行后面都插入了一个换行符。这是因为readline()函数在每行的末尾添加了“\n”字符。如果你不想在每行文字间输出额外的那一行,你可以这么做print(firstline,end=’ ')。这将会删除“\n”字符。在读取和打印前两行后,最后的语句f.close()将会把文件关闭。一旦完成了文件的读取,你总是需要把文件关闭,以释放对应的系统资源。

8.2使用For循环来读取文本文件

除了使用上面的readline()方法来读取文本文件外,也可以使用for循环。事实上,for循环是读取文本文件更加优雅和有效的方式。下面的程序展示了这是怎么完成的。

f = open ('myfile.txt', ’r')

for line in f:
    print (line, end='')
f.close()

for循环会在文本文件上逐行循环。当运行它时,你将会得到:

Learn Python in One Day and Learn It Well
Python for Beginners with Hands-on Project
The only book you need to start coding in
Python immediately
http://www.learncodingfast.com/python

8.3 写入文本文件

既然已经学会了如何打开并读取文件,那么就让我们试着写入文件吧。为了写入文件,我将会使用a(添加)模式。你也可以使用w模式,但如果文件存在的话,这将会删除文件中原有的内容。尝试运行下面的程序。

f= open ('myfile,txt','a')

f.write('\nThis sentence will be
appended.')
f.write('\nPython is Fun!')

f.close()

其中我们使用write)函数向文件中添加了"This sentence will be appended.“和"Python is Fun!”,每行都会从一个新行开始,因为我们使用了换行符号“\n”你将会得到:

Learn Python in one Day and Learn It Well
Python for Beginners with Hands-on Project
The only book you need to start coding in
Python immediately
http://www.learncodingfast.com/python
This sentence will be appended.
Python is Fun!

8.4 通过缓冲大小来打开并读取文本文件

有时,我们可能想通过缓冲大小来读取文件,这样我们的程序就可以不使用太多的内存资源。为了这么做,可以使用read()函数(而不是readline()函数),它可以让我们指定我们想要的缓冲大小。尝试下面的程序。

inputFile = open (‘myfile.txt’, ‘r’)
outputFile = open (‘myoutputfile.txt’,‘w’)

msg = inputFile.read(10)

while len(msg):
outputFile.write(msg)
msg = inputFile.read(10)

inputFile.close()
outputFile.close()

首先,我们打开两个文件,inputFile.txt和outputFile.txt文件分别用于读取和写入。

接下来,我们使用语句msg=inputFile.read(10)和一个while循环一次从文件中循环10位。括号中的值10告诉read0函数仅仅读取10位的数据。while条件while len(msg):检查变量msg的长度。只要它的长度不为0,循环就会继续。

在while循环内部,语句outputFile.write(msq)把信息写入输出文件中。在写入信息后,语句msg=inputFile.read(10)将会读入下10位的数据,并会一直这么做,直到读取完整个文件。读完文件,程序就把两个文件都关闭了。

当你运行程序时,一个新的文件myoutputfile.txt将会被创建。打开文件时,你将会注意到它和输入文件myfile.txt的内容是一样的。为了证明每次仅读取10位的数据,你可以把程序中的outputFile.write(msg)这一行修改为outputFile.write(msg+‘\n’)。再次运行程序。现在myoutputfile.txt中的每行将最多包含10个字符。下面的这段将会是你得到的输出。
Learn Pyth
on in One
pay and Le
arn It Wel

8.5 打开、读取并写入二进制文件

二进制文件表示的是任何包含非文字的文件,比如图像或者视频文件。为了处理二进制文件,我们可以使用rb或者wb模式。把一个jpeg文件复制到你的桌面上,并把它重命名为myimage.jpg。现在编辑上面的程序,把程序的前两行:

inputFile = open (‘myfile.txt’, ‘r’)
outputFile = open (‘myoutputfile.txt’,‘w’)
改为:
inputFile = open (‘myimage.jpg’,‘rb’)
outputFile = open (‘myoutputimage.jpg’,
‘wb’)

确保你也把语句outputFile.write(msg+‘\n’)修改为outputFile.write(msg)。

运行新的程序。你应该会在桌面上得到一个新的叫作myoutputimage.jpg的图片文件。当你打开这个图片文件时,它看起来应该和myimage.jpg是一模一样的。

8.6 删除和重命名文件

在处理文件时,我们需要学习的另外两个有用的函数是remove()和rename()。 这两个函数在os模块里面,在使用它们之前,我们需要在程序中引入它们。

remove()函数会删除一个文件。语法是remove(filename)。比如,为了删除myfile.txt,我们可以这么写remove(‘myfile.txt’)。

rename()函数会重命名一个文件。语法是rename(old name, new name)。 为了把oldfile.txt重命名为newfile.txt,我们可以这么写rename(‘oldfile.txt’, ‘newfile.txt’)。
在这里插入图片描述

Python入门实战:从环境配置到自动化文件整理脚本 Python是一种面向实际问题解决的通用编程语言,其核心价值在于将语法知识快速转化为生产力工具。理解解释器、pip包管理、虚拟环境和pathlib路径操作等基础原理,是构建稳定开发环境的技术前提;掌握文件系统遍历、条件分类与shutil移动等能力,则直接支撑日常办公自动化。这种‘任务驱动+即时反馈’的学习路径,显著区别于传统语法灌输,特别适合财务、运营、教师等非专业开发者快速上手。本文聚焦真实场景中的首个可运行脚本——下载文件夹智能归类器,覆盖Windows/macOS/Linux全平台配置、双击执行封装及 阅读详情

相关推荐

解决相同型号USB设备在Windows系统中重复枚举问题

本文详细解析了Windows系统中相同型号USB设备重复枚举问题的成因及解决方案。通过修改注册表、使用PsTools工具清除设备记录以及编程实现自动化处理等方法,有效解决设备识别混乱问题,特别适用于自动化测试和工业设备管理场景。

weixin_42561040的博客 565

每天10分钟,带你一周精通Python:第2章 为Python做好准备

在开始编写第一个Python程序之前,我们需要下载与我们所用计算机对应的合适的。我们在本书中使用Python 3,因为在Python的官方网站上写着**“Python 2x是历史,Python3.x是这门语言的现在和未来”。“Python 3 消除了很多不必要的、会困住初级编程人员的荆棘”。**然而,当前Python2依旧被广泛地使用着。Python2和3大约90%的地方都很相似。因此如果学习了Python3,理解Python2编写的代码也就毫无困难。

andyyah晓波的博客 745

广东省道路工程检测练习试题(判断题)真题

按下式计算小于某粒径颗粒质量百分数:X=(A/B)x100( )49.、挖坑灌砂法适用于在现场测定基层(或底基层)、砂石路面及路基土的各种材料压实层的密度和压实度,但不适用于填石路堤等有大孔洞或大孔隙材料的压实度检测。95.挖坑灌砂法适用于在现场测定基层(或底基层)、砂石路面及路基土的各种材料压实层的密度和压实度,但不适用于填石路堤等有大孔洞或大孔隙材料的压实度检测( )107.以干密度 pd 为纵坐标,含水率w为横坐标,绘 pd-w 关系曲线,曲线上峰值点的纵、横坐标分别为最大干密度和最佳含水率( )

ZShy001238的博客 684

看我是如何用Python实现办公自动化的 从每日工作8小时到8分钟

谁说学了编程就一定要当程序员?自我介绍一下,我既不是程序员,大学学的也不是IT专业。我的工作内容主要就是制作汇报各种统计报表、数据图等。我身边的同事每天至少花3.5~4小时去做Excel,使用数据透视图、vlookup等各类函数去做出一份内含3000多个数据的日报。umm… 如果领导临时安排什么工作的话,那就要加班从浩如烟海的数据里找领导要的东西了。 首次接到任务的我 我们有一个巨大的,达70多M的Excel文件,每次公司配发的破电脑打开就需要小二十分钟,里面存着我们近十年的采购的每一车的详细信息,重点是里

Java_bx的博客 1481

[网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向破解

这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步。上一篇文章分享了IDA Pro反汇编工具的基础用法,并简单讲解一个EXE逆向工程解密实战方法;本篇文章将讲解动态分析OllyDbg工具的基础用法,主要是结合两个Crakeme案例逆向破解。希望对初学者有帮助,大神请飘过,谢谢各位看官!

杨秀璋的专栏 1万+

基于改进YOLO11的天际线检测算法:复杂光照与恶劣天气适配实战

针对特定任务的YOLO改进,不应追求通用SOTA,而应深入理解任务的物理退化机理。Retinex对应光照模型、FAD对应散射模型、Wise-IoU对应边界不确定性——每个改进都有明确的物理解释,而非盲目的模块堆叠。时序一致性:引入轻量级RNN/Transformer模块利用视频帧间信息补偿单帧退化;多模态融合:结合红外/NIR波段穿透雾霾,与可见光特征在FAD-Neck中交叉注意力融合;自监督预训练:在海量无标注天际线视频上用MAE预训练Backbone,缓解恶劣天气标注稀缺问题。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 96

Python零基础入门:避开常见误区,5分钟上手实战编程

编程语言作为人机交互的核心工具,其本质是将人类逻辑转化为计算机可执行的指令。Python凭借简洁的语法和丰富的生态,成为初学者入门编程的理想选择。理解变量、函数、控制流等基础概念,是掌握编程原理的关键。这些技术价值在于能够自动化处理重复任务,提升工作效率,广泛应用于数据分析、网络爬虫、自动化办公等场景。本文针对新手常见的学习痛点,如环境配置复杂、语法记忆孤立等,提供了一条最小阻力路径,通过场景驱动的微任务和即时反馈练习,帮助读者快速建立Python编程直觉,并完成批量文件重命名等实用项目,实现从理论到实践的

weixin_33912453的博客 930

【系统分析师】高分论文:论基于构件的软件开发(气象灾害影响评估系统)

本文以某手机气象灾害影响评估系统为例,探讨了基于构件技术的软件开发实践。通过分析开发中常见的功能模块重复问题,提出建立企业构件库、针对性选择构件和加强构件管理的解决方案。项目实施中成功复用登录模块等通用构件,并针对气象数据转换需求开发新构件,最终在8个月内高质量完成系统建设。文章总结了构件开发的三个关键点:构件库建设是基础、构件选择需精准、构件管理要规范。同时指出需注意全新需求开发、性能优化等问题,建议通过培训提升团队对构件的理解力。该案例证明构件技术能有效缩短周期、降低成本,为企业积累可复用的技术资产。

数据知道的博客 4253

10分钟精通Upscayl批处理:从单张到千张图像的高效放大实战指南

你是否还在为处理大量低分辨率图片而头疼?面对成百上千张需要放大的图像,手动操作不仅耗时费力,还容易因参数不一致导致输出质量参差不齐。Upscayl的批处理功能正是为你解决这一痛点的利器,它能将AI图像放大效率提升10倍以上,让你从繁琐的重复操作中解放出来。 ## 🔍 批处理核心机制深度解析 Upscayl的批处理功能基于[electron/commands/batch-upscayl.ts]

gitblog_00606的博客 463

《人工智能基础》[工具篇2]:ChatBox怎么使用本地模型和知识库配置教程

通过设置-知识库,添加,填入知识库名称、选用的嵌入模型创建好知识库后,点击添加文件按钮+,可以上传本地文件、拖动文件支持上传PDF、DOCX等格式的文档。系统会自动对文档进行处理。批量上传:一次最多上传 50 个文档,总大小不超过 2GB;格式检测:支持 PDF/DOCX/TXT/Markdown,不支持 EXE/RAR 等二进制文件。‌文档类‌图片类‌代码类‌:Python、Java、JavaScript等编程文件‌其他‌:Markdown(用于导出对话记录) ‌。

专注大数据、云计算、人工智能、机器人领域技术传播 2941

STM32实战开发(110):基于STM32的智能地震监测系统开发

地震监测系统是自然灾害预警体系中至关重要的一部分。随着地震灾害的频发和对自然灾害预测精度要求的提高,智能地震监测系统逐渐成为研究的热点。STM32作为一款高性能的微控制器,凭借其强大的处理能力和丰富的外设接口,在地震监测领域中得到了广泛应用。本篇文章将详细介绍如何使用STM32实现一个智能地震监测系统的开发过程,涵盖硬件设计、软件编程、系统实现及相关代码。通过集成加速度传感器、地震数据采集、实时数据处理和无线数据传输功能,我们可以设计一个高效、稳定的智能地震监测系统。

2201_76125393的博客 710

Python学习路径规划:从入门到精通的三大经典书籍指南

在编程学习过程中,选择合适的教材是构建扎实知识体系的关键一步。Python作为一门语法简洁、应用广泛的高级编程语言,其学习路径通常遵循从基础语法掌握到高级特性理解,再到工程实践应用的递进逻辑。理解Python的核心设计哲学和数据结构原理,能够帮助开发者编写出更高效、更优雅的代码,这是提升技术价值的重要体现。在实际应用场景中,无论是数据分析、Web开发还是自动化脚本,都需要将语言特性与具体问题解决方案相结合。本文围绕Python学习这一核心主题,结合**学习路径**和**实战项目**两个关键维度,系统分析了三

weixin_30294295的博客 327

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Python入门教程:从零基础到精通的终极指南(2024最新版)

作为一个从土木工程转行编程的老司机(是的,我27岁才接触代码!),Python绝对是我见过最友好的编程语言!它就像编程界的"瑞士军刀"——数据分析、网站开发、人工智能通吃!还记得我第一次用10行代码搞定Excel重复劳动时的震撼吗?💥缩进问题:混用空格和Tab会报错!建议设置编辑器自动转换模块导入:找不到模块?先pip install 包名安装中文乱码:在文件开头加版本兼容:Python2和3语法差异大,新手请死磕3.x版本路径问题:建议使用pathlib库处理文件路径每天写代码(哪怕10分钟)

binbinaijishu88的博客 878

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

RVC变声器完整教程:10分钟语音如何训练出可用的AI音色模型

# RVC变声器完整教程:10分钟语音如何训练出可用的AI音色模型 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)是一个基于 VITS 架构的开源 AI 变声框架:用 10 分钟语音素材就能训练出音色模型,再把任意音频转换成目标音色。本文带你从环境搭建、训练、推理到排错走完一遍,不需要深度学习背景。 ## 一、先说结论:它值不值得你花时间 用「适

gitblog_00053的博客 482

python自动化办公都能做什么-用 Python 自动化办公能做到哪些有趣或有用的事情?...

先说结论:用每天不到二十分钟的工作量取缔了四到五名同事全天的工作,并顺带着优化了整个部门的数据结构。目前我已经成为整个项目组甚至全部门最核心的数据运营角色。可以说部门离开了我编写的程序几乎无法正常运行下去,而且经过长时间的积累增删,我写的程序越来越复杂并且多套程序之间又有极强的关联性,除了我之外没有人可以驾驭。每天用5分钟的时间运行母程序,一天的工作搞定!因此我也成了整个部门无可替代的角色,有足够...

q6q6q的专栏 356

5分钟搞定yfinance数据导出:从零到精通的完整指南

还在为金融数据导出格式不兼容、操作复杂而烦恼吗?作为金融数据分析师,小明每天需要为团队准备多只股票的收盘价报表,手动下载整理耗时又易错。直到他发现yfinance这个神器,用几行代码就解决了所有问题!本文将带你快速掌握yfinance的多种数据导出技巧,从基础操作到生产部署,让你轻松应对各种数据导出需求。 ## 🎯 问题场景:金融数据导出的三大痛点 ### 场景一:手动下载的烦恼 "每次都要

gitblog_00682的博客 1160

5分钟精通StarRailAssistant:解放双手的星穹铁道智能管家终极方案

每天在《崩坏:星穹铁道》中重复着同样的日常任务,你是否感到疲惫?从委托任务到地图探索,从遗器搭配到模拟宇宙,这些重复性操作占据了大量宝贵时间。StarRailAssistant作为一款基于Python开发的自动化工具,正能解决这一痛点,让你重新享受游戏的核心乐趣。 ## 重新定义游戏体验:从手动操作到智能托管 想象一下这样的场景:清晨醒来,你的角色已经完成了所有日常委托;周末空闲时,地图资源已

gitblog_00083的博客 84

AALC终极使用指南:5分钟从新手到精通

AhabAssistantLimbusCompany(AALC)是一款专为PC平台《Limbus Company》游戏设计的智能辅助工具。本文将从零开始,带你快速掌握这款工具的核心用法,让游戏日常任务从此变得轻松高效。 ## 项目初识:为什么你需要AALC 《Limbus Company》作为一款策略RPG,日常任务占据了玩家大量时间。据用户反馈,平均每天需要花费45-60分钟在重复性操作上,

gitblog_00099的博客 5135

Python定时任务实战:APScheduler从入门到精通

生产环境必备配置启用任务持久化(数据库存储)设置合理的添加全面的异常处理记录详细的执行日志开发阶段建议使用BlockingScheduler快速验证通过方法调试任务先在测试环境验证Cron表达式典型应用场景数据库备份(每天凌晨执行)数据同步(每5分钟一次)报表生成(每周一9点)缓存清理(每小时执行)通知发送(生日提醒等)APScheduler就像一个智能的闹钟系统,它不仅能准时提醒,还能根据复杂规则灵活调整。

这家伙很懒,什么都没有留下 1354

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 422
上一篇: 每天10分钟,带你一周精通Python:第7章函数和模块
下一篇: 每天10分钟,带你一周精通Python:第9章数学和BODMAS计算法则
andyyah晓波
博客等级 码龄7年 3368粉丝 454原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值