恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Python零基础实战教程:从环境配置到文件读写全解析

  • 首页
  • 资讯中心
  • /
  • Python零基础实战教程:从环境配置到文件读写全解析

相关资讯

MCML模拟器mcml.zip使用指南:光子传输建模与参数反演 2026/9/15 3:09:55
纯前端条形码识别:BarcodeDetector与ZXing降级实战 2026/9/15 3:09:55
深入掌握 Scala 核心语法:函数、控制流、模式匹配与面向对象速查指南 2026/9/15 3:09:55

最新资讯

医疗视频私有化部署实践:EasyDSS流媒体平台从架构到落地
AI爬虫识别与防护:robots.txt、IP段与UA三重验证指南
社恐逆袭AI医疗:从大模型到RAG的入门路径
Blender为何突然爆火?十年积累与工作流重构真相
电缆接头电场与温度场有限元仿真:从建模到电热耦合全流程解析
2025科研自动化必备:GitHub上10个最火的Skill能力包深度解析

今日推荐

GDPR下大数据架构重构与隐私保护实践
多组学数据平台架构设计与优化实践
企业主数据管理系统架构设计与实施全解析

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

Python零基础实战教程:从环境配置到文件读写全解析

发布时间:2026/9/15 3:09:55
Python零基础实战教程:从环境配置到文件读写全解析 从标题就能看出来这是一套面向纯小白的Python实战教程而且是系列里的第7篇。前6篇大概率已经把Python是什么、怎么装环境、基础语法这些讲过了但考虑到很多人是跳着看的我在这篇里还是会把从Hello World到文件处理这条主线重新捋一遍只是节奏更快重点更偏向实战。这篇教程适合什么人两类。第一类是刚把Python环境装好、写完Hello World、正准备往下一个功能点走的新手你会在这篇里把变量、类型、文件读写这些写代码最常用的东西一次性串起来。第二类是已经写过一些Python脚本、但文件处理总是靠百度复制粘贴的朋友这篇会帮你把读写文件的底层逻辑理清楚以后再遇到文件操作不用搜直接写。废话不多说直接开始。1. 环境准备先把Python和编辑器收拾利索1.1 装哪个版本为什么是Python 3而不是2这都什么年代了你要是还在网上下载Python 2.x的安装包赶紧删掉。Python 2在2020年就停止官方维护了现在装Python只有一个选择Python 3而且要装最新稳定版。我去Python官网python.org下载的时候一般会找Downloads菜单下面的Windows installer (64-bit)64位系统就选这个32位的老机器才需要额外留意。安装的时候有一个全网新手都会忽略的选项Add Python to PATH。这个勾选框在安装界面最底部默认是不勾的但你必须勾上。勾上之后系统才知道python这个命令去哪找否则你装完了在命令行敲python会提示不是内部或外部命令很多人第一步就卡在这里。装完怎么验证打开命令行Windows按WinR输cmd回车macOS/Linux打开Terminal输入python --version如果输出的是类似Python 3.11.5这样的版本号说明装好了。如果提示找不到python先别急着重装试试python3命令有些系统把命令命名为python3了。1.2 编辑器选择新手别贪多先从一个顺手的开始编辑器这块我不打算展开太多因为之前几篇详细写过这里只给结论。如果主要用来学语法、写小脚本用VS Code免费、插件多、对新手友好。装完记得装Python扩展否则没有代码提示和语法高亮写起来很难受。如果主要用来做数据分析和爬虫用PyCharm Community版对项目和虚拟环境的管理更省心。如果只是临时算个数、跑几行代码直接用Python自带的IDLE就行你装完Python就有了。我自己带新手的时候第一周基本都让他们用VS Code因为界面简单直接打开一个文件夹就能写F5就能跑不会有太多干扰项。等后面项目复杂了再换PyCharm也不迟。选择编辑器的核心原则是别折腾配置。真遇到过有学员拿一天时间折腾Vim主题代码一行没写这属于本末倒置。编辑器能跑代码就行当你写得足够多自然知道自己需要什么工具。1.3 运行代码的三种方式你至少得会两种Python代码的运行方式跟Java、C那些编译型语言不太一样它是解释执行的写一行就能跑一行。新手需要掌握的是以下三种方式一交互式命令行。在命令行里输入python回车进入提示符逐行输入代码回车立即出结果。适合验证一个语法、算个数比如你忘了len()函数怎么用进去试一下就知道了。方式二脚本文件运行。把代码写在一个以.py结尾的文件里然后用python 文件名.py来运行。这是日常开发最主要的方式。方式三IDE内置运行按钮。VS Code、PyCharm里都有绿色三角按钮点一下就运行当前文件本质还是执行方式二只是帮你省去了敲命令的步骤。新手最容易混淆的坑是写代码写到.py文件里结果忘了保存就点运行跑出来还是上一次的旧结果。这个问题我见得太多了记住两个词CtrlS先保存再运行。2. 从Hello World到第一行“有用”的代码2.1 Hello World的仪式感与真实含义几乎所有编程教程的第一个程序都是Hello WorldPython里只有一行print(Hello World)这就是Python跟C语言的第一大区别。C语言写个Hello World要#include stdio.h要写int main()要写大括号还要写return 0新手光理解这一套就够晕的。Python里直接print就完事了这就是解释型语言的性格关注你要做的事别跟机器客气。但这个Hello World不仅仅是个仪式它教会你三件事第一print()是一个函数它的作用是把括号里的内容显示到屏幕上。你之后写的所有程序几乎都要靠它来输出结果、调试问题。第二字符串要加引号。Hello World是文本数据在编程里叫字符串必须用单引号或双引号包起来。不加引号会报NameError因为Python会把Hello当成一个变量去找。第三代码是从上往下执行的。这是初学者首先要建立的编程思维程序就是一系列指令的集合按顺序执行。2.2 变量与类型程序里的“贴标签盒子”从Hello World跳到真正的编程必须理解变量。我教新人的时候喜欢用快递柜打比方变量就像快递柜里的格子每个格子有个编号变量名里面可以放东西数据放进去的东西还可以换。name 张小白 age 18 score 95.5 is_pass True这四行代码建了四个变量分别存了字符串、整数、浮点数、布尔值。Python是动态类型语言你不需要像Java那样声明变量的类型Python会自动根据你给的值判断。但这里有个新手经常搞混的概念变量赋值不是把名字贴到值上而是把名字指向一个值。a 1; b a; a 2之后b还是1而不是2因为b指向的是1这个整数对象a重新指向2不影响b。这个知识点等你学到列表、字典这种可变类型的时候还会遇到届时要格外小心。2.3 类型转换input函数藏着的那个坑新手写的第一个有交互功能的程序十有八九是猜数字或者计算器都会用到input函数接收用户输入。但有一个坑几乎人人都会踩age input(请输入你的年龄) print(明年你, age 1, 岁)运行会报错TypeError: can only concatenate str (not int) to str。原因很简单input函数接收到的任何内容都是字符串哪怕你输入的是18它也是字符串18字符串跟整数不能直接相加。解决方法是类型转换把字符串转成整数再去算age int(input(请输入你的年龄)) print(明年你, age 1, 岁)Python常见的类型转换函数就三个int(x)把x转成整数float(x)把x转成浮点数str(x)把x转成字符串这三个函数的用法要多练几遍因为文件处理、网络请求、数据库操作里类型转换几乎是无处不在的。我个人的习惯是一个程序里只要涉及用户输入、文件读取、接口返回的数据先想清楚这个数据当前是什么类型需要转成什么类型再动手写代码。你先有这个意识能避开90%的类型报错。2.4 字符串格式化拼接字符串的三种姿势字符串是Python里用的最多的数据类型所以格式化输出这块必须掌握。我见过新手用加号一个个拼字符串拼到最后引号都对不齐代码丑得没法看。推荐三种方式按优先级排列。方式一f-string最推荐Python 3.6name 张小白 score 95.5 print(f{name}这次考了{score}分)在字符串前面加个f里面用大括号{}把变量包起来Python会自动把变量的值填进去。这是目前最简洁、最直观的写法也是我写代码的主力方式。方式二format方法老项目里常见print({}这次考了{}分.format(name, score))这种方式在旧代码里很常见你能看懂就行新代码建议优先用f-string。方式三百分号格式化更老的写法看懂即可print(%s这次考了%.1f分 % (name, score))%s表示字符串占位%.1f表示保留一位小数的浮点数。这种写法现在基本只存在于老代码里了解即可。3. 文件处理实战读写文件这一篇就够了3.1 打开文件的完整姿势open函数的四个参数Python操作文件的第一步是open。新手学文件处理的时候教程里往往只讲文件名但其实open函数最常用的参数有四个理解了这四个参数你就理解了文件操作的八成场景。file open(test.txt, r, encodingutf-8)第一个参数是文件路径可以是相对路径test.txt也可以是绝对路径D:/Python/test.txt。第二个参数是打开模式这个最重要模式含义文件不存在时r只读默认模式报错w覆写写入清空原有内容新建a追加写入保留原有内容新建r读写报错w读写清空原有内容新建a读写追加新建第三个参数是编码格式处理含有中文的文件建议统一用utf-8不指定的话Windows默认可能是gbk容易乱码。第四个参数不常写这里先略过。3.2 只读模式read、readline、readlines怎么选读取文件有三种方法新手最容易纠结用哪个我来一个个说清楚。# 方法一一次读完整个文件 with open(test.txt, r, encodingutf-8) as f: content f.read() print(content)read()会把文件全部内容读成一个字符串。适合文件不大几MB以内、需要整体处理的情况。# 方法二一次读一行 with open(test.txt, r, encodingutf-8) as f: line f.readline() while line: print(line.strip()) line f.readline()readline()每次读一行适合逐行处理大文件。注意每行末尾都带着换行符\n用strip()去掉才能干净输出。# 方法三把每一行放到列表里 with open(test.txt, r, encodingutf-8) as f: lines f.readlines() for line in lines: print(line.strip())readlines()返回一个列表每个元素是一行字符串。适合文件不大、需要反复操作每一行的场景。但这里我要给一个更推荐的做法直接用for循环遍历文件对象这是在Python里逐行读文件最优雅的方式。with open(test.txt, r, encodingutf-8) as f: for line in f: print(line.strip())3.3 写入模式with语法帮你自动关门写入文件的代码分为两步open打开、write写入。很多新手会漏掉close这一步导致数据没写进去或者文件被占用。低级写法是这样的f open(output.txt, w, encodingutf-8) f.write(第一行内容\n) f.write(第二行内容\n) f.close()每次都要记得手动close一旦代码中间抛异常close这行就执行不到文件句柄泄漏后续可能报错文件被另一个进程使用。所以重点来了用with语法。with会在代码块执行完毕后自动关闭文件不管代码有没有报错。with open(output.txt, w, encodingutf-8) as f: f.write(第一行内容\n) f.write(第二行内容\n)我把这个叫免手关门写法实际开发里应该只用这种方式。你再也不要写open之后不close的代码。还有一个细节如果你要写多行内容可以用writelines配合列表但注意它不会自动加换行符每一行末尾都得自己加\nlines [第一行\n, 第二行\n] with open(output.txt, w, encodingutf-8) as f: f.writelines(lines)3.4 一个实战案例对学生成绩文件做统计光讲语法记不住我拿一个典型的作业题来做完整演示。假设文件scores.txt内容是这样的张小白,85 李大力,92 王小明,76 赵天宇,88需求读取文件计算平均分把不及格低于60分的学生名单输出到fail.txt。直接看代码students [] with open(scores.txt, r, encodingutf-8) as f: for line in f: line line.strip() # 去掉首尾空白 name, score_str line.split(,) # 按逗号拆分 score int(score_str) # 字符串转整数 students.append({name: name, score: score}) total_score sum(s[score] for s in students) avg_score total_score / len(students) print(f全班平均分{avg_score:.1f}) fail_students [s[name] for s in students if s[score] 60] with open(fail.txt, w, encodingutf-8) as f: for name in fail_students: f.write(name \n) print(不及格名单已写入fail.txt)这个例子把之前讲的基础语法全部串起来了变量、列表、字典、for循环、split分割、int类型转换、f-string格式化、文件读写。里面有几个点值得停下来细说。第一split(,)返回的是一个列表[张小白, 85]然后我用两个变量去接收解构赋值这在Python里非常常用。第二如果不做int(score_str)后面计算总和的时候会出错因为字符串之间不能相加数字。第三s[score] 60这种列表推导式新手一开始可能不习惯但我建议你即使刚开始写不太利索也要逼自己用。它比写三行for循环加if再append要简洁得多而且性能更好。3.5 路径与目录程序找不到文件的排查思路文件操作最常见的报错就是FileNotFoundError新手一看到就慌。这个报错的原因就一句话Python在当前工作目录下没找到这个文件。那怎么排查先把当前路径打出来import os print(os.getcwd())这个会打印Python解释器的当前工作目录。如果你的test.txt不在这个目录里就会FileNotFoundError。解决方案有两种。第一种用绝对路径最稳妥但代码可移植性差第二种用相对路径但你要清楚相对的是哪个目录。我个人推荐在项目里用一个主目录组织所有文件然后用os.path.join来拼路径这样在Windows和macOS/Linux系统里都不会出错import os base_dir os.path.dirname(os.path.abspath(__file__)) file_path os.path.join(base_dir, data, scores.txt)这里的__file__是当前Python文件的完整路径os.path.dirname取它所在的目录os.path.join按当前系统的分隔符拼出完整路径。这样不管你在哪个目录运行程序都能正确找到data文件夹下的scores.txt。3.6 with语法到底做了什么上下文管理器初识为什么要专门开一节讲with因为文件操作里90%的诡异bug都出在文件没被正确关闭上。Python官方文档里把with叫做上下文管理器Context Manager。你可以把它理解成一条规矩进入这个代码块的时候做一些准备退出这个代码块的时候无论发生了什么都必须做清理。对于文件来说准备是打开文件清理是关闭文件。看个对比你就明白了。如果不小心写了死循环或者中间代码抛异常用传统open/close方式文件可能一直不关闭其他程序想去读这个文件就报错。用with方式就算代码在with块里炸了退出的时候文件照样关闭绝对不会泄漏句柄。with语法不仅适用于文件操作还适用于数据库连接、网络连接、多线程锁等场景。你只要记住一个结论在Python里凡是涉及打开-使用-关闭这种资源操作优先用with。这不是风格问题是安全性问题。4. 零基础常见的文件处理报错一个个帮你排查4.1 FileNotFoundError文件路径不对这个前面讲过再补充一个典型场景你明明把代码文件和数据文件放在同一个文件夹里但运行时还是报错。原因很可能是你用的IDE工作目录跟你以为的目录不一致。PyCharm默认的工作目录是项目的根目录而不是代码文件所在目录VS Code则是你打开的文件夹根目录。解决办法永远不要依赖当前目录这种模糊概念要么用绝对路径要么用os.path.join拼路径。我在3.5节给的示例代码可以直接复制用。4.2 UnicodeDecodeError读取文件时编码不对Windows上最常见的文件处理报错之一。你的txt文件是UTF-8编码但Windows默认用GBK解码或者相反文件是GBK但你指定了utf-8。处理方法最粗暴有效的用记事本打开文件点文件-另存为看底部编码一栏确认文件到底是UTF-8还是ANSI。然后让代码里的encoding跟着文件实际编码走。如果你要写一个新文件直接在open里指定encodingutf-8以后别人在新环境里打开也不容易乱码。4.3 PermissionError文件被占用写不进去Windows系统的老毛病。程序要用w模式写一个文件但这个文件正被Excel、记事本或其他程序打开着就会报PermissionError。新手最容易迷茫的是我明明关掉运行的程序了为什么还是报错留意一下你之前运行过程中是不是CtrlC终止了代码这种强制中断有可能导致Python进程没有退出文件还被占着。到任务管理器里把python.exe进程结束掉再试一次。4.4 写入了文件但内容没有“刷新”这个是我被问过无数次的问题明明调用了write打开文件却是空的。原因基本有两个。第一忘了close文件。write的内容先存在缓冲区还没有真正写入硬盘只有close或flush才会强制写入。用with语法可以规避这个问题因为退出with块会自动flush。第二用r模式打开文件时写入位置不对。r模式打开文件后读写指针默认在文件开头你write的内容会覆盖原有内容。如果想去末尾追加得自己把指针移到末尾或者直接用a模式。4.5 会用到的几个额外技巧大文件、二进制文件要不要学大文件处理如果你要读一个几个GB的日志文件用readlines()会把整个文件加载到内存电脑可能卡死。正确的做法是for循环逐行迭代每次只处理一行。这种场景在日志分析、数据处理里很常见。二进制文件图片、视频、压缩包都是二进制文件打开模式要加b比如rb、wb。对新手来说二进制文件处理前期接触不多但你至少要会复制文件with open(source.jpg, rb) as src: content src.read() with open(target.jpg, wb) as dst: dst.write(content)二进制文件的读写不需要encoding参数因为编码只对文本有意义。5. 写在最后从这一篇之后你应该怎么继续练文件处理是Python零基础入门的第二道门槛第一道是Hello World。跨过这道门槛意味着你开始处理真实世界的数据而不是只跟print打交道了。从我个人带新人的经验来看接下来最好的练习方式是改造日常重复劳动。比如你有一堆txt文件需要把某一段文字统一替换用手工复制粘贴要一下午用Python几分钟就搞定——这种真实需求驱动的学习比看任何教程都来得扎实。这篇教程里所有代码建议你从头到尾亲手敲一遍网上有句话叫噼里啪啦读完等于没读代码是练会的不是看会的。等到你敲完这些示例再自己动手做一个读取一个文件夹里所有txt文件统计每个文件的字数输出到汇总表格这样的小工具文件处理这关你就彻底过去了。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号