当前位置:首页>开发>正文

Python对文本里面的内容排序 怎么用Python对大内存的txt文件内容进行排序

2023-06-16 23:57:09 互联网 未知 开发

 Python对文本里面的内容排序 怎么用Python对大内存的txt文件内容进行排序

Python对文本里面的内容排序

把文本的格式贴出来看看
假设格式是:
5KB
100KB
1MB
3MB
9MB
2MB
可用下面的程序(python3)
units={"KB" : 1, "MB" : 1024}
def calc(x):
    for unit, amount in units.items():
        if x.find(unit)>0:
            number=int(x[:-2])
            number*=amount
            return number

file=open("sort.txt", "r")
values=list(file)
file.close()
values=[ value[:-1] for value in values]
values.sort(key=calc)
print(values)
values=[value " " for value in values]
file=open("sort.txt", "w")
file.write("".join(values))
file.close()

怎么用Python对大内存的txt文件内容进行排序

道path = E:\PyWk\nodepad_py\  
fp = open(path   m.txt)  
a = fp.readlines()  
a = [x.split( ) for x in a]  
a = [[x[0],x[1].replace( ,)] for x in a]  
print a  
fp.close()  

b = [[int(x[0]), int(x[1])] for x in a]  
b.sort()  
b = [str(x[0])       str(x[1])     for x in b]  
fp = open(path n.txt, w)  
fp.writelines(b)  
fp.close()  
print b

python逐行读取txt文件 每行为一个list

#!/usr/bin/env Python
# coding=utf-
import re
# 你的文件路径
path = "./tags.txt"
# 读取文件
file = open(path, encoding="utf-8")
# 定义一个用于切割字符串的正则
seq = re.compile("s ")

result = []
# 逐行读取
for line in file:
    lst = seq.split(line.strip())
    item = {
        "name": lst[0],
        "val": lst[1:]
    }
    result.append(item)
# 关闭文件    
file.close()
print(result)# 输出结果类似:
[
    {
       "name":1,
       "val": ["v1","v2"]
    },
    {
       "name":2,
       "val": ["v1","v2"]
    }
]

最新文章