首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python文件内容排序

问python文件内容排序
EN

Stack Overflow用户
提问于 2014-04-25 03:30:25
回答 5查看 85关注 0票数 1

我的文件内容如下:

代码语言:javascript
复制
Dnext_0[11]
Dnext_1[0]
Dnext_0[0]
Dnext_0[128]
Dnext_0[1]

整理完后,我想要:

代码语言:javascript
复制
Dnext_0[0]
Dnext_0[1]
Dnext_0[11]
Dnext_0[128]
Dnext_1[0]

我试过这样做:

代码语言:javascript
复制
with open('testfile') as f:
    sorted_file = sorted(f)

print sorted_file

但它并没有给我我想要的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-04-25 03:40:42

其思想是使用sorted()对您指定的key lambda函数进行排序,该函数使用正则表达式提取Dnext_后面的数字和括号内的数字。

代码语言:javascript
复制
import re

pattern = re.compile('Dnext_(\d+)\[(\d+)\]')
with open('input.txt') as f:
    print sorted(f, key=lambda x: map(int, pattern.search(x).groups()))

指纹:

代码语言:javascript
复制
Dnext_0[0]
Dnext_0[1]
Dnext_0[11]
Dnext_0[128]
Dnext_1[0]

Dnext_(\d+)\[(\d+)\]正则表达式使用捕获组提取Dnext_后的数字和括号中的数字:

代码语言:javascript
复制
>>> import re
>>> pattern = re.compile('Dnext_(\d+)\[(\d+)\]')
>>> pattern.search('Dnext_0[11]').groups()
('0', '11')

map(int, ... )帮助将提取的数字转换为python整数(参见map()):

代码语言:javascript
复制
>>> map(int, pattern.search('Dnext_0[11]').groups())
[0, 11]

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2014-04-25 03:40:19

创建一个函数,返回包含要按行排序的元组,并将其用作键。

代码语言:javascript
复制
sorted(f.readlines(), key=lambda x:(int(x[6]), int(x.split('[')[1].split(']')[0])))
票数 0
EN

Stack Overflow用户

发布于 2014-04-25 03:42:00

看看这是否有帮助..。结果应该是:[“Dnext_”,'Dnext_11','Dnext_128','Dnext_1','Dnext_1']

代码语言:javascript
复制
with open('testfile') as f:
    l=f.readline()
    a=l.split()
    b=sorted(a)

print "original data is is ",l
print "Original data with comma is ",a
print "sorted data is ",b

当我贴出.Below的答案时,这个问题被改变了,答案并不完美,但可能对你有帮助:

代码语言:javascript
复制
with open('testfile') as f:
    l=f.readlines()
    #=l.split()
    b=sorted(l)

print "original data is is ",l
#print "Original data with comma is ",a
print "sorted data is ",b
for i in b:
    print i
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23283658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档