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

Python内置模块:io、file、json、csv

一、ioStringIO - 文本字符串的缓冲区fromioimportStringIO# 创建StringIO对象sioStringIO()# 空缓冲区sioStringIO(initial text)# 带初始数据# 常用方法sio.write(Hello )# 写入字符串返回字符数sio.write(World!)sio.getvalue()# Hello World! 获取全部内容sio.seek(0)# 移动指针到开头sio.read()# Hello World! 读取全部sio.read(5)# Hello 读取5个字符sio.readline()# 读取一行sio.readlines()# 读取所有行返回列表sio.close()# 关闭流# 使用上下文管理器withStringIO(data)asf:contentf.read()BytesIO - 二进制数据的缓冲区fromioimportBytesIO# 创建BytesIO对象bioBytesIO()# 空缓冲区bioBytesIO(bbinary data)# 带初始字节数据# 常用方法bio.write(bHello )# 写入字节bio.write(bWorld!)bio.getvalue()# bHello World!bio.seek(0)bio.read()# bHello World!bio.read(5)# bHello缓冲I/O方法fromioimportBytesIO,BufferedReader,BufferedWriter# 包装原始流rawBytesIO(bdata)readerBufferedReader(raw)reader.read(10)# 读取10字节reader.read1(10)# 最多读取10字节不多次调用reader.peek(5)# 预览5字节不移动指针reader.readinto(b)# 读取到字节数组中# 写入缓冲writerBufferedWriter(BytesIO())writer.write(bdata)writer.flush()# 确保数据写入底层流组合使用fromioimportTextIOWrapper,BytesIO# 将字节流包装为文本流byte_streamBytesIO(bhello world)text_streamTextIOWrapper(byte_stream,encodingutf-8)text_stream.read()# hello world# 检查流类型fromioimportIOBaseisinstance(byte_stream,IOBase)# 检查是否为I/O流二文件 file2.1 文件读写模式r以读方式打开文件文件的指针将会放在文件的开头默认模式。w打开一个文件只用于写如果文件不存在自动创建从第一行开始写如果文件存在则先清空再从第一行写。a打开一个文件用于追加如果文件已存在则将会在文件的末尾处写入新数据如果不存在则自动创建可以使用\n来标识换行。b表示二进制在读图片或者写图片等通常使用rb或者wb模式。 更新既可以读也可以写2.2 常用API# 打开文件, type(f) class _io.TextIOWrapperfopen(文件名,modew,encodingUTF-8)# 写内容f.write(Hello22222)# 一次写多行内容f.writelines([第一行内容,第二行内容])# 将内存中的数据刷新到磁盘f.flush()# 关闭文件占用会自动调用flush()f.close()#读几个字符f.read(2)#光标移动到第5个索引后面f.seek(5)#读取光标所在的行f.readline()#读取剩下的所有行每一行都作为list的元素readlines会读取到每行结尾的换行符\nf.readlines()#一次读取剩下所有内容f.read()2.3 示例type(f) class _io.TextIOWrapper该类实现了迭代器所以可以通过for循环来使用每次读一行数据。with as语法相当于自动在finally中执行了f.close()保证异常情况下也能关闭文件。with as相当于jdk8中的try () { }语法。# f在try里面算是全局变量所以在finally中还可以使用这如果是其它语言还要把f单独作为一行代码写在外边有点不优雅try:fopen(a.txt,moder,encodingUTF-8)finally:f.close()withopen(a.txt,moder,encodingUTF-8)asf:forlineinf:print(line)将字典写入文件中。importjson user_dict{username:虚竹,age:30}withopen(data.json,w,encodingutf-8)asf:json.dump(user_dict,f,ensure_asciiFalse)三、json字典与json字符串dumps将字典转为json字符串dict - str。loads将字符串转为字典对象str - dict。字典与文件dump将字典写入文件dict - file。load将file转为字典file - dict。importjson# 对象转json字符串, json中有中文需要关闭ensure_asciiuser{id:1,username:admin,name:张无忌}user_jsonjson.dumps(user,ensure_asciiFalse)# json字符串转对象user_objjson.loads(user_json)将字典写入文件中。importjson user_dict{username:虚竹,age:30}withopen(data.json,w,encodingutf-8)asf:json.dump(user_dict,f,ensure_asciiFalse)withopen(data.json,r,encodingutf-8)asf:user_dict2json.load(f)四、csvimportcsv#写withopen(csv_data/02.csv,w,encodingutf-8,newline)asf:writercsv.DictWriter(f,fieldnames[姓名,年龄,性别,爱好])writer.writeheader()# 写入表头writer.writerow({姓名:小王年龄:18,性别:男爱好:football,Java})#写入数 据writer.writerow({姓名:小李年龄:18性别:女爱好:Python})writer.writerow({姓名:小张,年龄:18,性别:男,爱好:C})writer.writerow({姓名:涛哥年龄:19,性别:男爱好:Python,Java}#读withopen(csv_data/02.csv,r,encodingutf-8)asf:readercsv.DictReader(f)forrowinreader:print(row)

相关文章:

Python内置模块:io、file、json、csv

一、io StringIO - 文本字符串的缓冲区 from io import StringIO# 创建StringIO对象 sio StringIO() # 空缓冲区 sio StringIO("initial text") # 带初始数据# 常用方法 sio.write("Hello ") # 写入字符串&…...

大语言模型微调实战:从LoRA到QLoRA,一站式开源框架详解

1. 项目概述与核心价值 如果你正在寻找一个能够一站式搞定主流大语言模型微调的开源项目,那么 ssbuild/llm_finetuning 绝对值得你花时间深入研究。这个项目本质上是一个基于 PyTorch 和 Hugging Face Transformers 生态的、高度工程化的微调框架。它最大的魅力在…...

LangGraph多智能体系统运维:从部署到监控的自动化方案

LangGraph多智能体系统运维:从部署到监控的全链路自动化方案 一、引言 钩子:你是否也踩过LangGraph上线的这些坑? 上周接到某企业AI团队的紧急求助:他们基于LangGraph搭建的客户服务多智能体系统上线仅3小时就全线崩溃,1.2万条用户咨询全部卡住,技术团队排查了2个小时才…...

AI智能体技能库架构设计与实现:从标准化到工程化实践

1. 项目概述:从零构建一个AI智能体技能库最近在GitHub上看到一个挺有意思的项目,叫leon2k2k2k/agent-skills。光看名字,你可能觉得这又是一个关于AI智能体(Agent)的普通代码仓库。但作为一个在AI应用开发领域摸爬滚打了…...

cua_desktop_operator_cli_skill:用命令行自动化桌面操作的效率利器

1. 项目概述:一个桌面操作员的命令行技能集最近在开源社区里看到一个挺有意思的项目,叫cua_desktop_operator_cli_skill。光看这个名字,可能有点摸不着头脑,但如果你是一个经常需要和电脑桌面、各种应用程序打交道的“操作员”&am…...

从零搭建机器人抓取系统:OpenClaw工作坊实践指南

1. 项目概述:一个为初学者打开机器人抓取大门的实践工作坊如果你对机器人技术,特别是让机械臂“学会”抓取物体这件事充满好奇,但又觉得它高深莫测、无从下手,那么jelmerdejong/openclaw-beginners-workshop这个项目就是为你量身打…...

【Perplexity Pro深度评测】:20年AI工具实战专家拆解3大隐藏成本与5个被忽略的高阶功能值不值得?

更多请点击: https://intelliparadigm.com 第一章:Perplexity Pro订阅值不值得 核心能力对比:免费版 vs Pro版 Perplexity Pro 提供实时联网搜索、多文件上传解析(PDF/DOCX/CSV)、无限次深度追问及自定义AI工作区等关…...

Marko导入导出完全指南:掌握模块化组件的终极导入导出机制

Marko导入导出完全指南:掌握模块化组件的终极导入导出机制 【免费下载链接】marko A declarative, HTML-based language that makes building web apps fun 项目地址: https://gitcode.com/gh_mirrors/ma/marko Marko是一款声明式、基于HTML的语言&#xff0…...

SMD电阻脉冲负载能力解析与工程实践

1. SMD电阻脉冲负载能力解析:工程师必须掌握的核心知识在工业控制板卡维修现场,我曾遇到一个令人费解的案例:某型号PLC的输入保护电路在雷雨季节频繁损坏,但检查发现所有元件参数都符合设计要求。最终用热成像仪捕捉到瞬间现象——…...

Azure Quickstart Templates 多区域部署高可用架构设计终极指南:5步构建企业级灾难恢复方案

Azure Quickstart Templates 多区域部署高可用架构设计终极指南:5步构建企业级灾难恢复方案 【免费下载链接】azure-quickstart-templates Azure Quickstart Templates 项目地址: https://gitcode.com/gh_mirrors/az/azure-quickstart-templates 在当今数字化…...

别再微调模型了!Claude 3.5 Sonnet新增3类零样本指令模板:Prompt工程师的最后护城河正在崩塌?

更多请点击: https://intelliparadigm.com 第一章:Claude 3.5 Sonnet零样本指令能力的范式跃迁 Claude 3.5 Sonnet 在零样本(zero-shot)场景下展现出前所未有的指令理解与泛化能力,标志着大模型从“模式复现”向“意图…...

抖音无水印下载器:终极免费批量下载工具完全指南

抖音无水印下载器:终极免费批量下载工具完全指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖…...

移动端优化awesome-stock-resources:响应式素材适配终极指南

移动端优化awesome-stock-resources:响应式素材适配终极指南 【免费下载链接】awesome-stock-resources :city_sunrise: A collection of links for free stock photography, video and Illustration websites 项目地址: https://gitcode.com/gh_mirrors/aw/aweso…...

Cursor集成Trunk插件:AI编程与代码质量守护的完美融合

1. 项目概述:当AI编程助手遇上代码质量守护者最近在折腾Cursor编辑器,发现了一个挺有意思的插件项目——trunk-io/cursor-plugin。简单来说,这就是一个桥梁,把Trunk这个代码质量与安全平台的能力,直接集成到了Cursor这…...

如何实现Airbyte动态服务发现:从基础到实践的完整指南

如何实现Airbyte动态服务发现:从基础到实践的完整指南 【免费下载链接】airbyte Open-source data movement for ELT pipelines and AI agents — from APIs, databases & files to warehouses, lakes, and AI applications. Both self-hosted and Cloud. 项目…...

美国通信业去监管趋势下的技术生态变革与产业应对策略

1. 从“去监管”信号看美国通信业格局重塑 2017年初,当阿吉特派伊(Ajit Pai)正式接任美国联邦通信委员会(FCC)主席时,他的一项早期举措——为广播公司和有线电视运营商削减文书工作规定——几乎在所有人的预…...

React Native跨平台AI聊天应用开发实战:架构设计与性能优化

1. 项目概述:一个全功能的跨平台AI聊天伴侣如果你和我一样,既是移动端开发者,又是AI应用的深度用户,那么你肯定经历过这样的困境:想在手机上随时随地、流畅地和ChatGPT对话,却发现官方App要么功能受限&…...

为什么我们的浏览器操作效率低下?如何用Shortkeys扩展实现3倍效率提升

为什么我们的浏览器操作效率低下?如何用Shortkeys扩展实现3倍效率提升 【免费下载链接】shortkeys A browser extension for custom keyboard shortcuts 项目地址: https://gitcode.com/gh_mirrors/sh/shortkeys 每天在浏览器上,我们花费大量时间…...

终极指南:3分钟解决Windows安装iPhone网络共享驱动难题

终极指南:3分钟解决Windows安装iPhone网络共享驱动难题 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_mi…...

Diem存储协议终极指南:如何构建高性能分布式文件存储系统

Diem存储协议终极指南:如何构建高性能分布式文件存储系统 【免费下载链接】diem Diem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world. 项目地址: https://gitcode.com/gh_mirrors/di…...

NanoSVG完整教程:从SVG文件解析到贝塞尔曲线渲染

NanoSVG完整教程:从SVG文件解析到贝塞尔曲线渲染 【免费下载链接】nanosvg Simple stupid SVG parser 项目地址: https://gitcode.com/gh_mirrors/na/nanosvg NanoSVG是一款轻量级的SVG解析库,能够将SVG文件高效转换为贝塞尔曲线数据,…...

半导体与EDA公司成长路径:从300万到5000万营收的实战指南

1. 从初创到巨头:一场关于半导体与EDA公司成长路径的深度对话如果你正在半导体、EDA(电子设计自动化)或者更广泛的硬科技领域创业,或者你在一家快速成长的科技公司担任核心角色,那么有一个问题你肯定反复思考过&#x…...

从Anthropic论文到工程落地:Harness engineering结合claude code,讲解四层前端架构规范

AI 时代,许多人都体验过了vibecoding,但结果不同。 😀 同一个需求,不同的人用 AI 写,出来的代码质量可能差很远。 有的人能跑出一个中型功能,PR 干干净净的; 有的人用 AI 写出来的&#xff…...

传统RAG把文档切碎,TreeSearch不接受,结果反而更快更准

无需 Embedding,无需向量库,无需切分——开源项目TreeSearch 用树结构保留文档灵魂,毫秒级检索万级文档。 你是不是也被 RAG 切碎过? 用过 RAG 的人都知道这个痛点: 文档被机械地切成固定大小的 chunk,喂…...

Nitric常见问题解答:开发者最关心的25个问题汇总

Nitric常见问题解答:开发者最关心的25个问题汇总 【免费下载链接】nitric Nitric is a multi-language framework for cloud applications with infrastructure from code. 项目地址: https://gitcode.com/gh_mirrors/ni/nitric Nitric是一个多语言框架&…...

Laravel Permission终极指南:数据库迁移与性能优化完整教程

Laravel Permission终极指南:数据库迁移与性能优化完整教程 【免费下载链接】laravel-permission Associate users with roles and permissions 项目地址: https://gitcode.com/gh_mirrors/la/laravel-permission 在构建现代Laravel应用时,权限管…...

避开学术‘红线’:手把手教你用AI+ArcMap合法合规处理论文中的中国地图

科研地图合规处理全流程:从标准地图到安全应用的实战指南 在学术研究中,地图作为重要的空间表达工具,其规范使用直接关系到研究成果的合法性和可信度。近年来,随着科研管理日趋严格,地图使用不当导致的论文撤稿、项目终…...

scp 命令的使用方法 什么软件支持 .git bash xshell .openssh

scp 命令的使用方法 什么软件支持 .git bash xshell .openssh scp backup.sh deploy.sh rollback.sh userserver:/path/to/project/ 这个命令主要在 ‌Linux‌、‌macOS‌ 或 ‌Windows (10/11)‌ 的 ‌命令行终端(Terminal / Command Prompt / PowerShell&#xff…...

基于Arduino Pro Micro的薄膜键盘矩阵改造:DIY低成本模拟飞行外设

1. 项目概述:为Falcon BMS打造一款经济型多功能按键面板如果你是一名《Falcon BMS》的飞行模拟爱好者,同时又对硬件DIY抱有热情,那么你很可能和我一样,对市面上那些动辄数百甚至上千元的专业模拟飞行外设感到望而却步。尤其是像F-…...

珠海市高新技术企业资质认定流程及时间

珠海市暂未发布2026年高企申报通知,往年高新技术企业认定工作通常于每年5月至9月分批开展,目前非申报窗口期,建议您提前准备以备下一轮申报。根据往年(如2025年)的受理安排,申报主要通过线上平台进行&#…...