Python中split分割主分隔符后,如何为每第6个字符串设置次分隔符?
解决方案
你的需求是将按|分割后的字段列表,每6个字段重新组合为一个记录,记录之间用换行分隔,同时保留字段内部的换行内容。可以按以下步骤实现:
步骤1:清理原始字符串(可选但推荐)
先去除记录之间的空行,避免空行被混入字段内容导致分组错误:
# 保留字段内部的换行,仅过滤空行 cleaned_str = '\n'.join(line for line in file_str.splitlines() if line.strip())
步骤2:分割字段
按|分割得到所有字段的列表:
parts = cleaned_str.split('|')
步骤3:分组并格式化
将字段列表按每6个元素分组,再将每个分组内的字段用|连接,分组之间用换行分隔:
# 每6个字段为一组,生成记录列表 records = [parts[i:i+6] for i in range(0, len(parts), 6)] # 拼接成最终的格式化字符串 formatted_result = '\n'.join('|'.join(record) for record in records)
完整示例代码
# 模拟你的文件内容 file_str = """uid216|Banana bunches nurture|Fail|76|7645|Singer uid342|Orange vulture|Pass|56 87|3547|Actor""" # 清理空行 cleaned_str = '\n'.join(line for line in file_str.splitlines() if line.strip()) parts = cleaned_str.split('|') # 分组并格式化 records = [parts[i:i+6] for i in range(0, len(parts), 6)] formatted_result = '\n'.join('|'.join(record) for record in records) print(formatted_result)
运行后输出:
uid216|Banana bunches nurture|Fail|76|7645|Singer uid342|Orange vulture|Pass|56 87|3547|Actor
如果你的字段内部不会出现连续空行,也可以跳过清理空行的步骤,但加上该步骤能避免记录间的空行干扰分组逻辑。
内容的提问来源于stack exchange,提问作者Jitendra
相关产品推荐
相关产品推荐

