影刀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/9/30 2:58:31 阅读更多 →
Kotlin inline、reified 与委托属性:ViewModel 与类型安全 API

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

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

2026/10/1 15:05:42 阅读更多 →
Mac mini与MacBook Neo选购指南:固定工位与移动办公场景深度对比

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

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

2026/9/23 3:29:25 阅读更多 →

最新新闻

告别复制粘贴筛选?用超级处理器插件一键搞定Excel数据拆分合并

告别复制粘贴筛选?用超级处理器插件一键搞定Excel数据拆分合并

周五下午快下班时,我被一份汇总表卡住了。七个分公司的销售明细发过来,我要按城市筛选、把符合条件的数据单独复制到新表,再把其中两列倒腾成统一格式。来回筛选、复制、粘贴、改格式,搞了快两个小时,表格还出现了公式…

2026/10/1 16:40:49 阅读更多 →
分布式电源接入后的配电网可靠性评估实战指南

分布式电源接入后的配电网可靠性评估实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 16:40:49 阅读更多 →
Win7/8.1 Steam Zstd兼容补丁原理与实操

Win7/8.1 Steam Zstd兼容补丁原理与实操

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 16:40:49 阅读更多 →
在ARM设备上运行Windows程序:Wine、FEX-Emu与DXMT兼容层实战

在ARM设备上运行Windows程序:Wine、FEX-Emu与DXMT兼容层实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 16:40:49 阅读更多 →
如何把 Agent 技能当资产来治理:Yao Meta Skill 的发布门禁、成熟度评分与晋升策略完整指南

如何把 Agent 技能当资产来治理:Yao Meta Skill 的发布门禁、成熟度评分与晋升策略完整指南

如何把 Agent 技能当资产来治理:Yao Meta Skill 的发布门禁、成熟度评分与晋升策略完整指南 【免费下载链接】yao-meta-skill YAO Yielding AI Outcomes. A rigorous engineering, evaluation, governance, and portability system for reusable agent skills. 项…

2026/10/1 16:40:49 阅读更多 →
基于YOLOv8的罐装饮料检测:千张图片训练与部署实战

基于YOLOv8的罐装饮料检测:千张图片训练与部署实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 16:39:49 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →