C++如何读取逗号分隔的多类型文件行数据?txt与csv选型疑问
问题解答
读取方法
主流开发语言都有现成的内置工具可以直接读取这类结构化数据,不需要手动写复杂的IO和字符串解析逻辑,以最常用的Python为例:
- 优先用内置
csv模块,容错性更高,自动处理字段空格、特殊字符包裹等边界情况,示例代码:
import csv data_list = [] with open("存储文件路径", "r", encoding="utf-8") as f: # 逐行读取并自动按逗号拆分字段 for row in csv.reader(f): # 按字段类型转换即可 user_name = row[0].strip() user_age = int(row[1].strip()) user_height = float(row[2].strip()) data_list.append((user_name, user_age, user_height))
- 如果确定所有行都没有包含逗号的字符串字段,也可以直接逐行读取后用
split拆分,写法更简洁:
with open("存储文件路径", "r", encoding="utf-8") as f: for line in f: parts = [p.strip() for p in line.split(",")] user_name, user_age, user_height = parts[0], int(parts[1]), float(parts[2])
如果用其他开发语言,C++可以用<fstream>配合字符串拆分、Java可以用BufferedReader加split、Go可以用标准库encoding/csv,都是10行以内代码就能完成读取。
格式选择建议
优先选择CSV格式,比普通TXT更适配当前场景,原因如下:
- 你当前的存储规则本身就符合CSV的标准格式定义,用
.csv后缀辨识度更高,不管是开发者还是表格工具(Excel、Numbers等)打开时都能自动识别为按列分隔的结构化数据,不需要额外配置分隔符 - 各类语言的CSV内置处理模块都已经覆盖了边界场景处理,比如字段包含逗号时用双引号包裹的规则,不需要你自己手动写逻辑处理,容错性更强
- 两者本质都是纯文本文件,存储体积、读写速度没有任何差异,用CSV不会增加额外的存储或性能成本
内容的提问来源于stack exchange,提问作者Porton_
相关产品推荐
相关产品推荐

