1、使用argparse组件,获取命令行参数;使用re组件,获取需要查找的字符串所在行
2、使用pandas组件,对文件进行排序。
3、命令行执行数据获取及排序,写入文件;
以下是完整代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#coding:utf-8 import re import argparse import pandas as pd parser = argparse.ArgumentParser(description = 'manual to this script' ) parser.add_argument( '--ip' , type = str , default = None ) parser.add_argument( '--type' , type = str , default = None ) args = parser.parse_args() filterStr = args.ip + " " + args. type perfdata = f1.readlines() f1.close() results = [] f2 = open ( 'filter.csv' , 'w' ) f2.writelines(perfdata[ 0 ]) for i in perfdata: n = re.findall(filterStr, i) if n: f2.writelines(i) f2.close() df = pd.read_csv( 'filter.csv' ) df = df.sort_values( 'elapsed' ,ascending = False ) df.to_csv( 'filterOrder.csv' ,index = False ) |
实例扩展:
Python对csv排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#/usr/bin/evn python # -*- coding: utf-8 -*- import sys from operator import itemgetter # input_file = open(sys.argv[1]) input_file = open ( "D:\\tmp\\a.csv" ) output_file = open ( "D:\\tmp\\asorted.csv" , "w" ) table = [] for line in input_file: col = line.split( '|' ) col[ 0 ] = col[ 0 ].strip() col[ 1 ] = int (col[ 1 ]) col[ 2 ] = int (col[ 2 ]) col[ 3 ] = int (col[ 3 ].strip()) table.append(col) #嵌套列表table[[8,8][*,*],...] table_sorted = sorted (table, key = itemgetter( 1 , 2 ),reverse = True ) #先后按列索引1,2排序,降序排列 output_file.write( 'header' + '\n' ) for row in table_sorted: #遍历读取排序后的嵌套列表 row = [ str (x) for x in row] #转换为字符串格式,好写入文本 output_file.write( "\t" .join(row) + '\n' ) input_file.close() output_file.close() |
以上就是用python给csv里的数据排序的具体代码的详细内容,更多关于用python给csv里的数据如何排序的资料请关注服务器之家其它相关文章!
原文链接:https://www.py.cn/jishu/gaoji/19604.html