美文网首页
Python大杂烩1:按照文件中第2列数字排序文本

Python大杂烩1:按照文件中第2列数字排序文本

作者: 时间结余 | 来源:发表于2020-03-09 21:31 被阅读0次
1.场景

在很久很久以前,有一个乞丐。
他乞讨到这样一个文件q1.txt:

原始文件

他有强迫症,想按第2列从高到低排序,效果如a1.txt:

目标文件

我们来帮他实现。


2.代码

python版本:v3.7.3
用法: python sortText.py q1.txt a1.txt

#sortText.py
#2020.03.09
import sys

def sort_text(in_file, out_file):
    #用列表解析一次性将文件所有内容读入,文件大于1GB时最好不要这么做
    #文件最好使用utf-8读取和写入
    in_lines = [line for line in open(in_file, "r", encoding="utf-8")]
    #排序,按照key排序,key=第2列字符串,转化为int,reverse=True降序
    out_lines = sorted(in_lines, key=lambda line:(int(line.split("\t")[1])), reverse=True)
    #直接写入list
    with open(out_file, "w", encoding="utf-8") as fw:
        fw.writelines(out_lines)

if __name__ == "__main__":
    #从控制台cmd接收参数列表
    args = sys.argv
    in_file = args[1]
    out_file = args[2]
    
    sort_text(in_file, out_file)

3.讨论

乞丐: list.sort()sorted(list)有什么区别?
作者:

前者直接改变list本身,不会生成新的对象,返回值为None
举例:a = list.sort() ,则a=None
后者不会改变list本身,而是生成新的对象,需要有对象接收返回值
举例:b = list.sort(),则b是有值的

乞丐:lambda line:(int(line.split("\t")[1]))怎么理解?
作者:

lambda为匿名函数的标记
可以理解成这样一个函数:

def <lambda> (line):
   return int(line.split("\t")[1])

相关文章

  • Python大杂烩1:按照文件中第2列数字排序文本

    1.场景 在很久很久以前,有一个乞丐。他乞讨到这样一个文件q1.txt: 他有强迫症,想按第2列从高到低排序,效果...

  • Linux - sort

    sort 将文本文件排序范例: sort passwd sort –n test :将test按照数字大小排序 s...

  • 处理数据文件(一)

    sort sort 命令会按照会话指定的默认语言的排序规则对文本文件中的数据进行排序。 不难发现,sort 命令并...

  • python 常用操作记录

    python 列表及字典(按key、按value排序) python dict按照key 排序:1、method ...

  • python shell对文件第几列排序输出

    请用Pyton和shell脚本按照第二列排序输出? sort命令用于将文本文件内容加以排序,将输入行按照键值字段与...

  • JavaScript学习--数组排序以及最大值、最小值问题

    1.数字排序在js中默认是使用 sort() 函数按照字符串顺序对值进行排序。但是,sort() 方法在对数值排序...

  • 测试图片按数字排序并每6个重命名

    需求: 1)把文件按后面的数字排序(字母-数字.bmp) 2)把上述排序所得的文件每6个读取并加上递增数字前缀

  • sort

    1、需求:将多个文件合并后排序。 对输入文件中数据进行排序。 输入文件中的每行内容均为一个数字,即一个数据。 要求...

  • 案例二

    需求:1、按照文件中的第一列排序。2、如果第一列相同,则按照第二列排序准备数据:1 52 43 61 32 1 首...

  • 经典排序算法与STL

    排序算法 按照是否将元素放入到内存中,排序分为内部排序和外部排序。内部排序适合元素不多的文件,按照元素的排序原则,...

网友评论

      本文标题:Python大杂烩1:按照文件中第2列数字排序文本

      本文链接:https://www.haomeiwen.com/subject/bjhmdhtx.html