首页 > 其他分享 >统计每一类别的总数目

统计每一类别的总数目

时间:2022-11-16 11:24:10浏览次数:25  
标签:test2 别的 root pc1 py file 一类 txt 数目

 

001、shell实现

[root@pc1 test2]# ls
a.txt
[root@pc1 test2]# cat a.txt    ## 测试数据
a 8
b 3
a 9
a 2
b 3
c 7
c 2
c 10
[root@pc1 test2]# for i in a b c; do grep $i a.txt | awk -v a=$i '{sum += $2} END {print a, sum}'; done
a 19
b 6
c 19

 

 

002、python 实现

[root@pc1 test2]# ls
a.txt  test.py
[root@pc1 test2]# cat a.txt     ## 测试数据
a 8
b 3
a 9
a 2
b 3
c 7
c 2
c 10
[root@pc1 test2]# cat test.py    ## 测试python程序
#!/usr/bin/python

import sys

in_file = open(sys.argv[1], "r")
out_file = open(sys.argv[2], "w")

lines = in_file.readlines()

from collections import defaultdict
dict1 = defaultdict(int)

for i in lines:
        i = i.split(" ")
        dict1[i[0]] += int(i[1])

for i,j in dict1.items():
        out_file.write(i + ": ")
        out_file.write(str(j) + "\n")

in_file.close()
out_file.close()

 

[root@pc1 test2]# ls
a.txt  test.py
[root@pc1 test2]# python test.py a.txt result.txt    ## 执行程序
[root@pc1 test2]# ls
a.txt  result.txt  test.py
[root@pc1 test2]# cat result.txt         ## 程序运行结果
a: 19
b: 6
c: 19

 

003、python2

[root@pc1 test2]# ls
a.txt  test.py
[root@pc1 test2]# cat a.txt    ## 测试数据
a 8
b 3
a 9
a 2
b 3
c 7
c 2
c 10
[root@pc1 test2]# cat test.py   ## 测试程序
#!/usr/bin/python

import sys

in_file = open(sys.argv[1], "r")
out_file = open(sys.argv[2], "w")
lines = in_file.readlines()

dict1 = {}

for i in lines:
        i = i.split(" ")
        if i[0] in dict1:
                dict1[i[0]] += int(i[1])
        else:
                dict1[i[0]] = int(i[1])

for i,j in dict1.items():
        out_file.write(i + ": ")
        print(str(j), file = out_file)

in_file.close()
out_file.close()

 

[root@pc1 test2]# ls
a.txt  test.py
[root@pc1 test2]# python test.py a.txt b.txt   ## 执行程序
[root@pc1 test2]# ls
a.txt  b.txt  test.py
[root@pc1 test2]# cat b.txt    ## 程序执行结果
a: 19
b: 6
c: 19

 

标签:test2,别的,root,pc1,py,file,一类,txt,数目
From: https://www.cnblogs.com/liujiaxin2018/p/16895241.html

相关文章