影刀RPA 文本文件的读写:TXT、CSV、JSON的读取与写入
影刀RPA 文本文件的读写TXT、CSV、JSON的读取与写入作者林焱Excel不是唯一的数据存储格式。很多场景下你需要处理文本文件——日志文件是TXT、导出的数据是CSV、API返回的数据是JSON。影刀RPA在处理这些文本文件时主要依赖Python节点的文件操作能力。这篇文章把TXT、CSV、JSON三种最常见文本格式的读写方法讲全。一、TXT文件读写1.1 读取TXT文件# 读取整个文件withopen(D:\\data\\log.txt,r,encodingutf-8)asf:contentf.read()set_variable(file_content,content)# 逐行读取withopen(D:\\data\\log.txt,r,encodingutf-8)asf:linesf.readlines()set_variable(file_lines,lines)# 逐行处理大文件推荐result[]withopen(D:\\data\\log.txt,r,encodingutf-8)asf:forlineinf:lineline.strip()# 去掉行尾换行符ifline:result.append(line)set_variable(processed_lines,result)坑1编码问题文件编码可能是UTF-8、GBK、GB2312等。用错误的编码打开会乱码或报错。# 自动检测编码importchardetwithopen(D:\\data\\log.txt,rb)asf:rawf.read()encodingchardet.detect(raw)[encoding]withopen(D:\\data\\log.txt,r,encodingencoding)asf:contentf.read()坑2BOM头UTF-8 with BOM的文件开头有一个\ufeff字符读取后内容开头会多一个不可见字符。用utf-8-sig编码打开自动去掉BOMwithopen(D:\\data\\log.txt,r,encodingutf-8-sig)asf:contentf.read()![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3c3a9af1f0df447a8ac4faffc8d12a8a.png#pic_center)1.2 写入TXT文件# 覆盖写入withopen(D:\\data\\output.txt,w,encodingutf-8)asf:f.write(第一行内容\n)f.write(第二行内容\n)# 追加写入withopen(D:\\data\\log.txt,a,encodingutf-8)asf:f.write(新追加的内容\n)# 写入多行lines[第一行,第二行,第三行]withopen(D:\\data\\output.txt,w,encodingutf-8)asf:f.write(\n.join(lines))坑写入后没换行f.write(内容)不会自动加换行符需要手动加\n。如果用print函数写文件会自动加换行withopen(D:\\data\\output.txt,w,encodingutf-8)asf:print(第一行,filef)print(第二行,filef)1.3 TXT文件处理实战拼多多店群自动化上架方案# 日志文件解析importrewithopen(D:\\logs\\app.log,r,encodingutf-8)asf:logsf.readlines()# 提取ERROR级别的日志errors[]forlineinlogs:ifERRORinline:# 提取时间和错误信息matchre.match(r\[(.*?)\] ERROR (.*),line)ifmatch:errors.append({time:match.group(1),message:match.group(2)})set_variable(error_logs,errors)二、CSV文件读写2.1 用csv模块读取importcsv# 读取CSV文件withopen(D:\\data\\products.csv,r,encodingutf-8-sig)asf:readercsv.reader(f)headersnext(reader)# 第一行是表头data[rowforrowinreader]# data是一个二维列表# data[0] [商品A, 99.9, 100]set_variable(csv_headers,headers)set_variable(csv_data,data)2.2 用DictReader读取推荐importcsvwithopen(D:\\data\\products.csv,r,encodingutf-8-sig)asf:readercsv.DictReader(f)data[dict(row)forrowinreader]# data是一个字典列表# data[0] {商品名: 商品A, 价格: 99.9, 库存: 100}set_variable(csv_data,data)2.3 用pandas读取CSV最推荐importpandasaspd# 基本读取dfpd.read_csv(D:\\data\\products.csv,encodingutf-8-sig)# 指定分隔符TSV文件用制表符dfpd.read_csv(D:\\data\\products.tsv,sep\t)# 跳过前几行dfpd.read_csv(D:\\data\\products.csv,skiprows2)# 指定列名dfpd.read_csv(D:\\data\\products.csv,names[名称,价格,库存],headerNone)# 指定某列为索引dfpd.read_csv(D:\\data\\products.csv,index_col商品ID)# 数据类型转换dfpd.read_csv(D:\\data\\products.csv,dtype{价格:float,库存:int})set_variable(csv_data,df.to_dict(records))2.4 写入CSVimportcsv dataget_variable(output_data)headers[商品名,价格,库存]withopen(D:\\data\\output.csv,w,encodingutf-8-sig,newline)asf:writercsv.DictWriter(f,fieldnamesheaders)writer.writeheader()writer.writerows(data)坑1newline参数Windows下写CSV必须加newline否则每行之间会多一个空行。坑2逗号在数据中CSV用逗号分隔字段如果数据本身包含逗号如商品A,蓝色需要用引号包裹。csv模块自动处理# csv.writer会自动给包含逗号的数据加引号writer.writerow([商品A,蓝色,99.9,100])# 输出: 商品A,蓝色,99.9,100坑3CSV编码问题Excel打开UTF-8编码的CSV文件会乱码。用utf-8-sig编码写入带BOM头Excel就能正确识别withopen(D:\\data\\output.csv,w,encodingutf-8-sig,newline)asf:2.5 CSV与Excel互转importpandasaspd# CSV转Exceldfpd.read_csv(D:\\data\\products.csv,encodingutf-8-sig)df.to_excel(D:\\data\\products.xlsx,indexFalse)# Excel转CSVdfpd.read_excel(D:\\data\\products.xlsx)df.to_csv(D:\\data\\products.csv,indexFalse,encodingutf-8-sig)三、JSON文件读写3.1 读取JSON文件importjsonwithopen(D:\\data\\config.json,r,encodingutf-8)asf:configjson.load(f)# config是一个字典# {server: 192.168.1.1, port: 8080, debug: true}set_variable(config,config)3.2 写入JSON文件importjson dataget_variable(output_data)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/eb283a5a4cb8420ab5ece4d80bc0d01e.png#pic_center)withopen(D:\\data\\output.json,w,encodingutf-8)asf:json.dump(data,f,ensure_asciiFalse,indent2)坑1ensure_ascii参数json.dump默认ensure_asciiTrue中文字符会被转义成\uXXXX。设置ensure_asciiFalse保留中文# ensure_asciiTrue默认: {name: \u5546\u54c1A}# ensure_asciiFalse: {name: 商品A}json.dump(data,f,ensure_asciiFalse,indent2)坑2indent参数indent2让JSON输出有缩进方便人阅读。不设置indent则输出紧凑格式文件更小但不可读。3.3 JSON与Python对象的转换importjson# Python字典 → JSON字符串data{name:商品A,price:99.9,tags:[热销,推荐]}json_strjson.dumps(data,ensure_asciiFalse)# JSON字符串 → Python字典parsedjson.loads(json_str)# 嵌套JSON处理nested{product:{name:商品A,variants:[{color:红,stock:10},{color:蓝,stock:20}]}}# 访问嵌套数据forvariantinnested[product][variants]:print(f{variant[color]}:{variant[stock]})3.4 JSON作为配置文件importjson# 读取配置withopen(D:\\config\\settings.json,r,encodingutf-8)asf:configjson.load(f)# 使用配置serverconfig.get(server,localhost)# 默认值localhostportconfig.get(port,8080)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8d276b553730473788516f2e0ae8e44b.png#pic_center)timeoutconfig.get(timeout,30)retry_countconfig.get(retry,3)# 修改配置并保存config[last_run]2026-07-01withopen(D:\\config\\settings.json,w,encodingutf-8)asf:json.dump(config,f,ensure_asciiFalse,indent2)坑JSON不支持注释标准JSON格式不支持注释。如果配置文件需要注释用JSON5格式或YAML或者在配置字段里加_comment字段{_comment:这是服务器配置,server:192.168.1.1,port:8080}四、格式选择指南TEMU店群如何管理运营格式适合场景优势劣势TXT日志、简单文本最简单无结构CSV表格数据通用、Excel兼容无类型、无嵌套JSON配置、API数据有结构、支持嵌套比CSV冗余Excel报表、复杂表格有格式、有公式二进制、依赖库五、实战场景5.1 API响应保存为JSONimportjsonimportrequests responserequests.get(https://api.example.com/products)dataresponse.json()# 保存到文件withopen(D:\\data\\api_response.json,w,encodingutf-8)asf:json.dump(data,f,ensure_asciiFalse,indent2)# 提取需要的数据转成CSVimportpandasaspd dfpd.DataFrame(data[products])df.to_csv(D:\\data\\products.csv,indexFalse,encodingutf-8-sig)5.2 多格式数据合并importjsonimportpandasaspd# 从JSON读取withopen(D:\\data\\api_data.json,r,encodingutf-8)asf:json_datajson.load(f)df_apipd.DataFrame(json_data[products])# 从CSV读取df_csvpd.read_csv(D:\\data\\local_data.csv,encodingutf-8-sig)# 从Excel读取df_excelpd.read_excel(D:\\data\\manual.xlsx)# 合并所有数据df_allpd.concat([df_api,df_csv,df_excel],ignore_indexTrue)# 输出为Exceldf_all.to_excel(D:\\data\\merged.xlsx,indexFalse)5.3 日志写入fromdatetimeimportdatetimedefwrite_log(message,levelINFO):写入日志文件timestampdatetime.now().strftime(%Y-%m-%d %H:%M:%S)log_linef[{timestamp}] [{level}]{message}\nwithopen(D:\\logs\\rpa.log,a,encodingutf-8)asf:f.write(log_line)# 使用write_log(流程开始执行)write_log(采集到50条数据,INFO)write_log(网站连接超时,ERROR)write_log(流程执行完毕)六、避坑清单坑1文件操作后忘记关闭不使用with语句时文件需要手动f.close()。如果忘记关闭文件锁不释放其他操作会报错。永远用with open(...) as f自动管理。坑2大文件一次性读取几百MB的日志文件一次性f.read()会占用大量内存。逐行读取更安全withopen(big_file.log,r)asf:forlineinf:process(line)坑3CSV中的数字变成文本CSV没有数据类型所有值都是文本。用pandas读取时指定数据类型dfpd.read_csv(data.csv,dtype{价格:float,库存:int})坑4JSON序列化失败Python对象中包含日期、自定义类等无法直接序列化为JSON。需要先转换fromdatetimeimportdatetime data{date:datetime.now().isoformat()}# 日期转字符串json.dumps(data)坑5并发写入冲突多个流程同时写同一个文件数据会错乱。用文件锁或者分文件写入。

相关新闻

电子投标避坑|10 个查重漏洞,极易被查出围标串标

电子投标避坑|10 个查重漏洞,极易被查出围标串标

相比于沿用多年的传统纸质招投标,电子招投标的普及时间并不算长。但正是这种线上化的投标模式,和线下传统投标存在巨大差异,让大量中小投标人踩坑、违规中招。很多人还停留在「没人举报就没事」的老旧认知里,但现在的招投标监管&a…

2026/7/23 14:38:45 阅读更多 →
Kotlin inline、reified 与委托属性:ViewModel 与类型安全 API

Kotlin inline、reified 与委托属性:ViewModel 与类型安全 API

文章目录第 1 章 从作用域函数到 inline:高阶函数为何默认内联原理补充踩坑动手练第 2 章 inline 展开与参数修饰:crossinline 与 noinline原理补充踩坑动手练第 3 章 reified:运行时类型与类型安全 API原理补充踩坑动手练第 4 章 by lazy&am…

2026/7/23 8:38:28 阅读更多 →
Mac mini与MacBook Neo选购指南:固定工位与移动办公场景深度对比

Mac mini与MacBook Neo选购指南:固定工位与移动办公场景深度对比

1. 先搞清楚你的真实需求:固定工位还是移动办公?差价一千多,我最终选了更贵的 Mac mini 而不是 MacBook Neo,这个决定背后其实不是简单的价格比较,而是使用场景的彻底梳理。如果你也在纠结这两款设备,先别急…

2026/7/23 7:37:59 阅读更多 →

最新新闻

北京智能体新政里的 9 个新词,我逐个查了一遍

北京智能体新政里的 9 个新词,我逐个查了一遍

Harness Engineering、Token Economy、OPC、FDE、AIP、RaaS……这些过去只在论文、GitHub 和创业者 BP 里流通的词,第一次集体出现在官方政策文件中。 我不准备复述政策,只想回答:这些新词为什么现在出现?它们意味着什么&#xff…

2026/7/23 18:26:32 阅读更多 →
OpenWrt 安装Quagga 支持ospf Bgp等动态路由协议 软路由实测 系列四

OpenWrt 安装Quagga 支持ospf Bgp等动态路由协议 软路由实测 系列四

1 Quagga 是一个路由软件套件, 提供 OSPFv2,OSPFv3,RIP v1 和 v2,RIPng 和 BGP-4 的实现.2 web 登录安装#或者ssh登录安装opkg install quagga quagga-zebra quagga-bgpd quagga-watchquagga quagga-vtysh # reboot3 ssh 登录#重启服务 /etc/init.d/quagga restart #查看 roo…

2026/7/23 18:26:32 阅读更多 →
【MAI Gateway|魔芋企业AI网关】我们把 Token 成本从黑箱解放的全过程

【MAI Gateway|魔芋企业AI网关】我们把 Token 成本从黑箱解放的全过程

云时代有 FinOps,AI 时代需要 FinAPI。本文记录一家企业从"月底才知道花了多少钱"到"每一枚 Token 都有归属"的成本治理实践。 MaiGateway-企业级大模型API网关|多模型统一调度与AI流量治理平台MaiGateway企业级LLM API网关,统一兼容…

2026/7/23 18:26:32 阅读更多 →
计算机毕业设计之基于springboot的农产品直销平台的设计与实现

计算机毕业设计之基于springboot的农产品直销平台的设计与实现

随着互联网技术的飞速发展与普及,传统农产品销售模式面临挑战,信息不对称、流通环节多导致成本增加、农民收益受限等问题凸显。农产品直销平台应运而生,旨在利用互联网打破地域限制,减少中间环节,实现农产品从田间地头…

2026/7/23 18:26:32 阅读更多 →
OpenWrt 配置网络 (lan,wan口) 教程 x86/64平台 软路由实测 系列二

OpenWrt 配置网络 (lan,wan口) 教程 x86/64平台 软路由实测 系列二

openwrt 服务器安装,可参考:OpenWrt U盘安装使用 详细教程 x86/64平台 软路由实测 系列一-CSDN博客 1 主机有2个网卡,配置通过主机来访问外网 #web登录,打开网络配置 #lan 口配置IP等 #wan 口配置IP等 2 查看配置 rootOpenWrt:~# cat /etc/config/ne…

2026/7/23 18:26:32 阅读更多 →
第 13 篇:Java 对接通义千问大模型,性能优化全攻略 (Java+AI 落地实战系列 | 并发可控 | 响应耗时降低 60%)

第 13 篇:Java 对接通义千问大模型,性能优化全攻略 (Java+AI 落地实战系列 | 并发可控 | 响应耗时降低 60%)

第 13 篇:Java 对接通义千问大模型,性能优化全攻略 (Java+AI 落地实战系列 | 并发可控 | 响应耗时降低 60%) 本文是《Java+AI 落地实战 从入门到生产级》系列第 9 篇 往期回顾: 第1篇:Java程序员学AI/转AI全指南,从CURD到AI应用工程师(零算法,4周落地) 第2篇:Java …

2026/7/23 18:25:32 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻