如何将输出中\t与第二个\t之间的文本替换为", "?
解决方案
有两种简单方式可以实现需求,具体如下:
方法一:直接修改列表元素后格式化输出
你用csv.reader读取后得到的line是一个列表(比如对应示例行的['f34', '382', '5.00']),可以直接把列表的第二个元素替换成", ",再用制表符连接元素并包裹方括号输出:
import csv with open(filepath) as f: reader = csv.reader(f, delimiter=' ') for line in reader: # 先判断行格式是否符合预期,避免索引错误 if len(line) >= 3: line[1] = ', ' print(f"[{'\t'.join(line)}]") else: # 格式不符的行直接输出原内容 print(line)
方法二:正则表达式替换输出字符串
如果需要更灵活的文本替换(比如不确定每行元素数量,但确定输出里有两个制表符分隔的内容),可以先生成原输出字符串,再用正则把两个制表符之间的内容替换成", ":
import csv import re with open(filepath) as f: reader = csv.reader(f, delimiter=' ') for line in reader: original_str = f"[{'\t'.join(line)}]" # 匹配第一个\t到第二个\t之间的所有内容,替换为", " modified_str = re.sub(r'\t(.*?)\t', r'\t, \t', original_str) print(modified_str)
两种方法都能将示例输出中的[f34\t382\t5.00]转换为[f34\t, \t5.00],满足替换需求。
内容的提问来源于stack exchange,提问作者ApplesAreFruits
相关产品推荐
相关产品推荐

