如何使用Python将文件中字符与空格替换为逗号以提取为CSV格式
处理CSI文本转CSV的Python方案
处理逻辑
每行原始数据的结构为:逗号分隔的常规字段 + 末尾用方括号包裹的空格分隔数字序列,我们只需要对方括号内的内容做格式转换即可:
- 提取方括号内的数字串
- 将数字之间的空格替换为逗号
- 替换完成后和前面的常规字段拼接,就是标准CSV格式的行
完整代码
# 定义原始文件路径和输出CSV路径,和脚本同目录直接写文件名即可 input_file_path = "csi_raw.txt" output_file_path = "csi_output.csv" # 打开文件逐行处理 with open(input_file_path, 'r', encoding='utf-8') as input_f, open(output_file_path, 'w', encoding='utf-8') as output_f: for line in input_f: # 去掉每行首尾的换行、空白字符 line = line.strip() if not line: continue # 跳过空行 # 找到方括号的起止位置 left_bracket_idx = line.find('[') right_bracket_idx = line.find(']') # 拆分出方括号前的内容和方括号内的内容 prefix_part = line[:left_bracket_idx] number_part = line[left_bracket_idx + 1 : right_bracket_idx].strip() # 将数字间的空格替换为逗号,split()会自动处理多空格、首尾空格问题 processed_number_part = ','.join(number_part.split()) # 拼接后写入CSV文件 output_line = prefix_part + processed_number_part + '\n' output_f.write(output_line)
使用说明
- 把你的原始文本文件保存为
csi_raw.txt,和上面的Python脚本放在同一个文件夹里 - 运行脚本,同文件夹下会生成
csi_output.csv,打开后原来方括号里的每个数字都会是独立的单元格 - 如果你的原始文件有其他编码(比如GBK),把代码里的
encoding='utf-8'改成encoding='gbk'即可
内容的提问来源于stack exchange,提问作者Akshat Deo
相关产品推荐
相关产品推荐

