鱼C论坛

 找回密码
 立即注册
查看: 647|回复: 2

[已解决]第二列有多个值,需要换行输出,并加上第一行

[复制链接]
发表于 2021-12-24 16:47:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
刚学习python,拜托大佬指点一二:
示例数据
block1        137tbca|TbCa042341---137tbca|TbCa042342---137tbca|TbCa042343---137tbca|TbCa042344---137tbca|TbCa042345---137tbca|TbCa042346
block2        137tbca|TbCa042363---137tbca|TbCa042364---137tbca|TbCa042365---137tbca|TbCa042366---137tbca|TbCa042367---137tbca|TbCa042368

想要得到的结果:
block1        137tbca|TbCa042341
block1        137tbca|TbCa042342
block1        137tbca|TbCa042343
block1        137tbca|TbCa042344
block1        137tbca|TbCa042345
block1        137tbca|TbCa042346
block2        137tbca|TbCa042363
block2        137tbca|TbCa042364
block2        137tbca|TbCa042365
block2        137tbca|TbCa042366
block2        137tbca|TbCa042367
block2        137tbca|TbCa042368


自己拙劣的几句脚本:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
args=sys.argv

input1=args[1]
output1=args[2]

with open(input1, 'r') as fr1, open(output1,'w') as fw1:
        file = fr1.readlines()
        for line in file:
                line = line.strip()
                lines = line.split('\t')
                new_line =lines[0]+'\t'+lines[-1].replace('---', '\n')
                print (new_line, file = fw1)


自己脚本输出的结果:
block1  137tbca|TbCa042341
137tbca|TbCa042342
137tbca|TbCa042343
137tbca|TbCa042344
137tbca|TbCa042345
137tbca|TbCa042346
block2  137tbca|TbCa042363
137tbca|TbCa042364
137tbca|TbCa042365
137tbca|TbCa042366
137tbca|TbCa042367
137tbca|TbCa042368

(只有第一行输出正确了,不知道怎么写,求鱼友们帮忙~)
感恩~~
最佳答案
2021-12-24 17:01:51
  1. for line in file:
  2.     line = line.strip()
  3.     title = line.split(' ')[0]
  4.     word = line.split(' ')[-1]
  5.     for each in word.split('---'):
  6.         print(title,' '*8,each,sep='')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-24 17:01:51 | 显示全部楼层    本楼为最佳答案   
  1. for line in file:
  2.     line = line.strip()
  3.     title = line.split(' ')[0]
  4.     word = line.split(' ')[-1]
  5.     for each in word.split('---'):
  6.         print(title,' '*8,each,sep='')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-24 17:08:20 | 显示全部楼层

感恩,又学会了一点点,祝圣诞快乐~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-3 21:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表