如何在排序文件中插入一行?

时间:2017-05-11 02:11:42

标签: python python-2.7 sorting

我用循环生成了很多字符串,我需要在文件中写这些字符串。我希望我的文件排序。以下代码说明了我想要做的事情:

#! /usr/bin/python2.7
# -*- coding: utf-8 -*-
my_file = open('my_file.txt', 'w')

#randon_string and insert_in_order_alphabetically are just for the example
for x in range(1,100000000):
    my_string = random_string()
    my_file.insert_in_alphabetical_order(my_string)

my_file.close()

Python是否具有执行此操作的功能或我是否需要编写自己的算法代码?

1 个答案:

答案 0 :(得分:0)

最明智的做法是将文件作为list读取,添加所有额外的字符串,然后在重写文件之前使用列表上的sort

E.g。给出文件:

c
c
c
a
a
b
a
a

代码:

lines = []

with open('file.txt','r') as f:
    for line in f:
        lines.append(line.rstrip())

lines.append('z')
lines.append('e')
lines.append('e')

lines.sort()

with open('file.txt', 'w') as f:
    for line in lines:
        f.write(line + "\n")

这会创建文件:

a
a
a
a
b
c
c
c
e
e
z