【问题标题】:Sorting by Columns with Wildcard Numbers and Writing Matching sets to File按具有通配符编号的列排序并将匹配集写入文件
【发布时间】:2017-12-17 11:14:15
【问题描述】:

我用过:

sort -k 1,2

获得以下排序数据集:

ATL, 03, 922, 145
EP, 05, 976, 76
EP, 06, 960, 85
WP, 21, 988, 46
WP, 22, 992, 46

那么我将如何将排序后的数据集(第一列和第二列在某种意义上是连接的)写入所有不同的文本文件?

第一列将始终包含 ATL、EP 和 WP。 第二列将始终包含任意分配的数字。

我还希望将 ATL 03 的所有条目写入一个静态名称的文件,例如storm1.txt;然后将 EP, 05 的所有条目写入另一个静态名称的文件,例如storm2.txt。

非常感谢您提前提供的帮助!

【问题讨论】:

    标签: python regex bash awk sed


    【解决方案1】:

    awk 来救援!

    awk -F', +' '!(($1,$2) in a){a[$1,$2]=++c} {print > "storm"a[$1,$2]".txt"}' file
    

    请注意,不需要对数据进行初始排序。

    【讨论】:

      【解决方案2】:

      假设您在 dataset.txt 中有排序后的数据:

      import csv
      import itertools
      import operator
      
      
      with open('dataset.txt') as fin:
          infile = csv.reader(fin)
          for k,group in itertools.groupby(infile, operator.itemgetter(0,1)):
              with open('Storm_{}.txt'.format("_".join(k))) as fout:
                  outfile = csv.writer(fout)
                  outfile.writerows(list(group))
      

      【讨论】:

        猜你喜欢
        • 2014-02-14
        • 1970-01-01
        • 2010-09-15
        • 2014-09-14
        • 1970-01-01
        • 2014-10-19
        • 2016-02-14
        • 2013-10-21
        相关资源
        最近更新 更多