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

python学习笔记(day3):文件操作与CSV文件处理

今天是学习python的第三天和我一起来梳理一下今天学习的知识吧一、今日学习目录open()函数的使用read()、readline()、readlines()方法write()与writelines()方法绝对路径与相对路径CSV文件操作库的相关操作二、文件操作基础1. open()函数基本语法f open(文件路径, 模式, encoding编码方式)常用模式模式说明r只读模式默认w写入模式会覆盖原内容a追加模式x创建新文件写入b二进制模式读写模式示例代码# 只读模式打开文件 f open(test.txt, r, encodingutf-8) print(f.read()) f.close() # 记得关闭文件2. read()、readline()、readlines()详解#假如f为一个文件对象类型read() - 读取全部内容content f.read() print(content)readline() - 逐行读取# 读取第一行 line1 f.readline() print(f第一行{line1}) # 读取第二行 line2 f.readline() print(f第二行{line2})readlines() - 读取所有行到列表# 返回列表每个元素是一行 lines f.readlines() print(f总行数{len(lines)}) for i, line in enumerate(lines, 1): print(f第{i}行{line.strip()})read()→ 读全部 → 返回字符串readline()→ 只读一行 → 返回字符串readlines()→ 读全部行 → 返回列表三、文件写入操作3. write() - 写入字符串# 写入模式会覆盖 with open(output.txt, w, encodingutf-8) as f: f.write(Hello, Python!\n) f.write(这是第二行\n) # 写入多个字符串 with open(output.txt, w, encodingutf-8) as f: f.write(第一行\n第二行\n第三行)4. writelines() - 写入字符串列表python# 准备数据 lines [苹果\n, 香蕉\n, 橙子\n] # 需要手动添加换行符 with open(fruits.txt, w, encodingutf-8) as f: f.writelines(lines) # 更灵活的方式 fruits [苹果, 香蕉, 橙子, 葡萄] with open(fruits2.txt, w, encodingutf-8) as f: f.writelines(f{fruit}\n for fruit in fruits)write()写入单个字符串writelines()写入字符串列表不会自动添加换行符四、路径管理绝对路径 vs 相对路径绝对路径从根目录开始的完整路径python# Windows示例 file_path rC:\Users\YourName\Documents\file.txt相对路径相对于当前工作目录的路径# 当前目录下的文件 with open(data.txt, r) as f: # 子目录下的文件 with open(subfolder/data.txt, r) as f: # 上级目录下的文件 with open(../parent_data.txt, r) as f: pass五、CSV文件处理什么是CSVCSV是逗号分隔值文件常用在数据交换中。读取CSV文件使用基本的文件操作例fopen(中国十二时辰.csv,r,encodingutf-8) ls[] for line in f: lineline.replace(\n,) ls.append(line.split(,))写入CSV文件这里open()函数第二个参数如果是w表示写入当前目录如果没有该文件则会创建一个该文件write()方法可以写入字符串r2open(你好.csv,w) r2.write(Hello)综合实例1实现读取中国十二时辰.csv文件第一步:复制该文件的存放路径(或者直接将该文件放入你当前的工作文件第二步读取该文件fopen(中国十二时辰.csv,r,encodingutf-8)第三步进行一系列处理具体如下fopen(中国十二时辰.csv,r,encodingutf-8) # 定义空列表用于存放读取到的时辰二维数据 ls[] # 逐行遍历打开的csv文件对象f for line in f: # 去除每行末尾的换行符 lineline.replace(\n,) # 以逗号切割每行字符串转为列表并添加到总列表中 ls.append(line.split(,)) # 开启无限循环持续接收用户输入查询 while True: # 接收用户输入的时间字符串 time_numinput(请输入时间:) # 异常捕获防止输入格式非法导致程序崩溃 try: # 校验小时、分钟数值范围是否合法 if (24int(time_num[0:2]) or int(time_num[0:2])0 or 60int(time_num[3:]) or int(time_num[3:])0) : print(输入时间格式有误) continue except: # 捕获格式错误、下标越界、非数字等异常 print(输入时间格式有误) continue # 将输入的时分统一换算为总分钟数方便区间比对 time_1int(time_num[0:2])*60int(time_num[3:]) # 遍历时辰数据跳过表头第一行 for line in ls[1:]: # 提取当前时辰开始时间换算为总分钟 time_firstint(line[1][0:2])*60int(line[1][3:5]) # 提取当前时辰结束时间换算为总分钟 time_lastint(line[1][6:8])*60int(line[1][9:11]) # 判断输入时间是否在当前时辰区间内 if time_firsttime_1 and time_lasttime_1: # 打印匹配到的时辰、属相、描述信息 print(时辰,line[0],\n属相,line[2],\n别名和描述:,line[3]) break # 单独处理子时跨天特殊时间段23点~24点 与 0点~1点 elif (23*60time_124*60)or(0time_11*60): print(时辰,line[0],\n属相,line[2],\n别名和描述:,line[3]) break; # 关闭文件释放资源 f.close()综合实例2实现整理HTML网页内容直接放原码# 打开网页源码文件以只读模式读取使用utf-8编码保证中文不乱码 r1open(中国城市名称大全.html,r,encodingutf-8) # 新建/打开csv文件以写入模式存储提取出来的城市名 r2open(中国城市大全.csv,w) # 定义空列表用于存放提取出的所有城市名称 a[] # 逐行读取html文件内容 for line in r1: # 判断当前行是否包含城市信息所在的div标签 if div classpara label-modulepara in line: # 对该行字符串进行分割提取出城市名称并按空格分割成列表添加到a中 aline.split()[1].split()[0].split( ) # 遍历所有提取到的城市名称逐个写入csv文件 for i in a: # 每个城市名后面加逗号符合csv文件格式 r2.write(i,) # 关闭读取的html文件 r1.close() # 关闭写入的csv文件 r2.close()六、库的相关操作1. 库的安装pip install 库名 # 示例安装数据处理库 pip install pandas2. 查看已安装库# 查看当前环境所有已安装第三方库及版本 pip list # 精准查询单个库是否安装、版本、路径 pip show 库名3. 库的卸载pip uninstall 库名4. 库版本升级pip install --upgrade 库名5. 导入库使用# 方式1直接导入 import time # 方式2别名导入简化书写常用 import time as t今天的内容就这么多啦明天再分享更多的python知识大家的点赞关注是我更新的动力 坚持打卡第3天掌握文件操作Python技能又进一步

相关文章:

python学习笔记(day3):文件操作与CSV文件处理

今天是学习python的第三天,和我一起来梳理一下今天学习的知识吧一、今日学习目录open()函数的使用read()、readline()、readlines()方法write()与writelines()方法绝对路径与相对路径CSV文件操作库的相关操作二、文件操作基础1. open()函数基本语法:f o…...

Pake:革命性的轻量级网页转桌面应用现代化解决方案

Pake:革命性的轻量级网页转桌面应用现代化解决方案 【免费下载链接】Pake 🤱🏻 Turn any webpage into a desktop app with one command. 项目地址: https://gitcode.com/GitHub_Trending/pa/Pake 在当今Web技术蓬勃发展的时代&#x…...

C语言结构体对齐的坑我帮你踩完了:从#pragma pack到__attribute__的避坑指南

C语言结构体对齐的坑我帮你踩完了:从#pragma pack到__attribute__的避坑指南 凌晨三点,调试器里的十六进制数据像天书一样摊在眼前。本该解析出的温度传感器数值变成了乱码,而这一切只是因为结构体里多了个uint8_t类型的标志位——这是我入行…...

如何用FigmaCN消除英文界面障碍:设计师的中文设计工作流解决方案

如何用FigmaCN消除英文界面障碍:设计师的中文设计工作流解决方案 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN FigmaCN是一款专为中文设计师打造的Figma界面翻译插件&…...

NCCL拓扑发现与Channel搜索:你的多GPU训练效率,可能就由这俩算法决定

NCCL拓扑发现与Channel搜索:多GPU训练效率的核心算法解析 在分布式深度学习训练中,NCCL(NVIDIA Collective Communications Library)作为GPU间通信的事实标准,其底层算法设计直接影响着多机多卡训练的效率。许多工程师…...

2025届最火的十大降重复率工具横评

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在学术跟内容创作范围内,AI生成文本的检测越发严格,所谓“降AI率网站…...

Docker AI Toolkit 2026正式发布:5大颠覆性功能+3层安全沙箱设计,AI工程师必须立即升级的7个理由

更多请点击: https://intelliparadigm.com 第一章:Docker AI Toolkit 2026:重新定义AI工程化交付范式 Docker AI Toolkit 2026 是面向生产级 AI 应用的一体化容器化工程套件,深度融合模型训练、推理优化、可观测性与合规审计能力…...

KMS_VL_ALL_AIO:Windows和Office激活的终极智能解决方案

KMS_VL_ALL_AIO:Windows和Office激活的终极智能解决方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否曾经因为Windows或Office的激活问题而感到困扰?面对复杂的…...

Caldera 推出 Metalayer 生态工具 拓展 Layer 生态能力

Caldera 近日正式推出 Metalayer Token Launcher,这是首个支持跨链代币部署的无代码解决方案, 为项目方提供一套无需代码的代币发行工具,帮助团队快速创建并部署 MetaTokens,进一步降低链上经济系统启动与资产发行的技术门槛。 Metalayer To…...

Tagetik-如何查找Excel按钮对应存储过程?

一个Excel中有多个按钮,如何找到每个按钮调用对应的存储过程,操作步骤: 1、找到对应表单菜单,双击它,如下2、点击Excel菜单“CCH Tagetik”-> 打开项目3、选择数据处理->右击菜单->运行数据处理->修改数据…...

iTubeGo:一键下载全网4K视频,还能秒转MP3的“资源收割机“!

刷YouTube看到超赞的4K风景纪录片想收藏?听到B站神曲想离线循环?或者需要批量下载教学视频做素材库?今天给大家安利的 iTubeGo YouTube Downloader,就是专为这类需求打造的全能型下载神器——不仅支持YouTube、B站、Twitter、Face…...

蓝桥杯嵌入式备赛:用STM32定时器捕获模式搞定频率测量(附完整代码)

蓝桥杯嵌入式竞赛实战:STM32定时器捕获模式精准测频全攻略 在蓝桥杯嵌入式竞赛的战场上,频率测量是选手们经常需要攻克的关键技术点之一。无论是信号发生器输出、传感器脉冲还是通信模块载波,准确快速地获取频率参数往往是功能实现的第一步。…...

GD32F103RCT6开发板开箱即用指南:从零配置Keil工程到成功烧录第一个程序

GD32F103RCT6开发板极速上手实战:60分钟完成从拆箱到LED闪烁 刚拿到GD32开发板时,那种既兴奋又忐忑的心情我太熟悉了——盒子里的这块小电路板到底能不能顺利跑起来?作为曾经同样从STM32转向GD32的开发者,我总结出这套一小时极速…...

别再硬编码了!用状态机重构你的STM32F4循迹小车代码(附HAL库例程)

用状态机重构STM32F4循迹小车:告别硬编码的工程化实践 在嵌入式开发中,处理多传感器输入和控制逻辑时,新手常陷入if-else或switch-case的硬编码陷阱。我曾见过一个典型的五路循迹小车项目,原始代码用超过20个条件判断处理传感器组…...

CMake死活找不到OpenCV?别急着重装,先试试这几招(附Windows/Linux/Mac通用解法)

CMake死活找不到OpenCV?别急着重装,先试试这几招(附Windows/Linux/Mac通用解法) 当你满心欢喜地在CMakeLists.txt中写下find_package(OpenCV REQUIRED),准备开始一个酷炫的计算机视觉项目时,突然蹦出的&quo…...

STM32 HAL库驱动DRV8301 SPI通信全攻略:从硬件连接到寄存器读写(附避坑清单)

STM32 HAL库驱动DRV8301 SPI通信全攻略:从硬件连接到寄存器读写(附避坑清单) 在电机控制领域,DRV8301作为一款集成栅极驱动器和电流检测放大器的三相无刷直流电机驱动器,因其高集成度和可靠性被广泛应用于工业伺服、无…...

从产品经理视角看:为什么内容运营增长平台一定要用 Redis?

很多人谈 Redis,习惯从技术角度切入:内存数据库快支持高并发支持多种数据结构但如果你是产品经理,真正需要思考的问题不是 Redis 快不快,而是:Redis 能解决什么业务问题?能带来什么产品价值?我曾…...

将军思维:在亚马逊,为何“关注对手”比“优化自己”重要一百倍

亚马逊的运营者可分为两种:“自我导向”型与“他人导向”型。这两种思维模式,将直接决定你的品牌是在内部的自嗨中慢性死亡,还是在外部的心智战场上攻城略地。 “自我导向”型运营者无法理解定位时代的本质:​ 你的产品定位&…...

除了Copilot,试试VSCode插件GPT Runner:如何用它做项目文档的智能问答助手?

用GPT Runner打造智能项目文档助手:超越Copilot的团队知识管理方案 当你的技术团队规模扩大到20人时,新成员入职第一周总会重复相同的问题:"部署环境需要哪些依赖?"、"API鉴权参数在哪里配置?"——…...

微信数据安全终极指南:理解数据保护与合规使用

微信数据安全终极指南:理解数据保护与合规使用 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 在数字时代,微信聊天记录承载着我们的工作沟通、个人回忆和重要信息,数据安全与隐私保护成…...

Adobe软件功能解锁的技术实现与风险控制策略

Adobe软件功能解锁的技术实现与风险控制策略 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 引言:创意工具的成本困境与解决方案探索 在数字创意领域&a…...

终极指南:PotplayerPanVideo - 一键解决网盘视频播放难题的完整教程

终极指南:PotplayerPanVideo - 一键解决网盘视频播放难题的完整教程 【免费下载链接】PotplayerPanVideo 利用第三方webdav网盘,实现在potplayer播放百度、迅雷、阿里云盘视频。 项目地址: https://gitcode.com/gh_mirrors/po/PotplayerPanVideo …...

Python边缘模型瘦身全链路(从PyTorch到ARM Cortex-M7部署):FP16量化+层融合+算子裁剪三重降维

更多请点击: https://intelliparadigm.com 第一章:Python边缘计算模型轻量化概览 在资源受限的边缘设备(如树莓派、Jetson Nano 或工业网关)上部署深度学习模型,面临内存带宽低、算力有限、功耗敏感等核心挑战。Pytho…...

OFA图像语义蕴含模型部署指南:从环境搭建到Web界面调用全流程

OFA图像语义蕴含模型部署指南:从环境搭建到Web界面调用全流程 1. 引言:让机器看懂图与文的“默契” 你有没有遇到过这样的场景?在网上购物时,看到一张精美的商品图片,但描述文字却含糊不清,你无法确定图片…...

ERNIE-4.5-0.3B-PT实战:vLLM高效部署,Chainlit打造可视化对话界面

ERNIE-4.5-0.3B-PT实战:vLLM高效部署,Chainlit打造可视化对话界面 1. 项目概述与核心价值 在当今AI技术快速发展的背景下,如何在本地环境中高效部署和调用大语言模型成为许多开发者的实际需求。本文将详细介绍如何使用vLLM框架部署ERNIE-4.…...

Ryzen处理器底层调试:SMUDebugTool的技术架构与实践范式

Ryzen处理器底层调试:SMUDebugTool的技术架构与实践范式 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://…...

League Akari:如何用本地化智能工具提升英雄联盟游戏体验

League Akari:如何用本地化智能工具提升英雄联盟游戏体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在英雄联盟的竞技对局中&…...

Whisper-large-v3实战:客服录音转文字,关键词快速定位

Whisper-large-v3实战:客服录音转文字,关键词快速定位 1. 引言:客服质检的痛点与AI的解法 每天下班前,客服主管小李都要面对一个头疼的任务:从几百通客服录音里,找出那些涉及“投诉”、“退款”、“升级”…...

如何高效下载全网资源:Res-Downloader 智能嗅探工具完全指南

如何高效下载全网资源:Res-Downloader 智能嗅探工具完全指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是…...

郭明錤爆料:OpenAI 计划 2028 年量产手机,欲重构手机交互逻辑

OpenAI 手机计划浮出水面4 月 28 日,知名行业分析师郭明錤发布产业调查报告,指出 OpenAI 正进军智能手机领域。它已与联发科、高通合作开发专用手机处理器,选定立讯精密作为独家系统联合设计与制造合作伙伴,预计 2028 年进入量产阶…...