【问题标题】:How to merge fields row-wise in a tab-delimited file with python如何使用python在制表符分隔的文件中逐行合并字段
【发布时间】:2016-07-21 10:06:48
【问题描述】:

这是我的制表符分隔文件的两个示例行:

id  reference_rc_001    alternative_rc_001  reference_rc_002    alternative_rc_002  reference_rc_003    alternative_rc_003
id1 0   433 0   0   69

我想每两列合并字段。示例输出应如下所示。这是python脚本的一个步骤。所以必须用python来完成

id  reference_rc_001alternative_rc_001  reference_rc_002alternative_rc_002  reference_rc_003alternative_rc_003
id1 0433    00  690

【问题讨论】:

    标签: python merge csv


    【解决方案1】:

    这看起来真的很可怕,可能是最糟糕的方法,并且可能和驴一样高效,但是...... 我认为它有效。

    您需要打开文件,最好使用with,这样您就可以遍历文件中的行。 (许多其他 SO 文章会用一个体面的解释说明这样做,所以我不打算这样做。)

    然后在我的演示for循环中使用那段代码:

    for line in file:
        items = line.split("\t")
        counters = range(len(items)/2)
        new_items = [items[0]] + [items[1+2*x] + items[2+2*x] for x in counters ]
        new_line = '\t'.join(new_items)
        print new_line
    

    解释一下:

    我将每一行拆分为一个列表(使用制表符作为分隔符)。 然后我通过索引列表的 n 和 n+1 元素并将它们添加在一起(作为字符串)来创建一个新列表。 最后,要使用制表符分隔条目重新创建一行文本,我将 joining 将新列表与制表符分隔符一起返回。

    希望这可以为您提供解决方案可能需要的部分。

    【讨论】:

      猜你喜欢
      • 2019-08-30
      • 2016-06-10
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 2018-07-10
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      相关资源
      最近更新 更多