如何将有序变量保存到文件

时间:2018-10-06 11:46:06

标签: python

我需要将一些变量保存到文件中。我可以写入文件,但是我不知道如何在python中排序文件的内容。

该文件将包含一个字符串,该字符串与一个整数配对,我想将其从最高整数到最低整数排序。

  

文件中的数据:

3 third string
1 first string
2 second string
     

预期输出:

1 first string
2 second string
3 third string

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

如果您在以下列表中输入内容,请说。然后,您可以使用sorted()函数,然后使用排序列表来写入文件

    l=['3 third string','1 third string','2 third string']
    l=sorted(l,key=lambda x : int(x[0]))
    with open("A:\mygit\projects\Python\output_dir\sample.txt",'w+') as f:
        for line in l:
            f.write("{}\n".format(line))

现在说如果您有一个包含乱序行的文件,现在如果您想读取和订购同一文件,则说出sample.txt如下所示:

    3 third string
    1 third string
    2 third string

现在下面的代码将首先读取文件,将其转换为列表,对其进行排序,然后将其写回到文件中:

    with open("sample.txt",'r') as f:
        l=[x.strip() for x in list(f)]

    l=sorted(l,key=lambda x : int(x[0]))

    with open("sample.txt",'w') as f:
        for line in l:
            f.write("{}\n".format(line))

答案 1 :(得分:-1)

如果您不必使用标准python,请看看json library.

除此之外,您还可以使用python内置的sorted()函数。