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