按字母顺序排序文本文件(Python)

Boc*_*cui 11 python sorting

我想按字母顺序对文件'shopping.txt'进行排序

shopping = open('shopping.txt')
line=shopping.readline()
while len(line)!=0:
    print(line, end ='')
    line=shopping.readline()
#for eachline in myFile:
#    print(eachline)
shopping.close()
Run Code Online (Sandbox Code Playgroud)

Sal*_*ali 32

只是为了展示一些不同的东西而不是在python中这样做,你可以从Unix系统的命令行做到这一点:

sort shopping.txt -o shopping.txt
Run Code Online (Sandbox Code Playgroud)

并且您的文件已排序.当然,如果你真的想要python:很多其他人提出的阅读文件解决方案和排序工作正常


Mez*_*man 20

一种简单的方法是使用sort()sorted()函数.

lines = shopping.readlines()
lines.sort()
Run Code Online (Sandbox Code Playgroud)

或者:

lines = sorted(shopping.readlines())
Run Code Online (Sandbox Code Playgroud)

缺点是你必须将整个文件读入内存.如果这不是问题,您可以使用这个简单的代码.


Avi*_*Raj 8

使用sorted功能.

with open('shopping.txt', 'r') as r:
    for line in sorted(r):
        print(line, end='')
Run Code Online (Sandbox Code Playgroud)

  • @AkshayHazari:`sorted()` 加载内存中的所有行。为了避免加载所有行,您可以调用外部`sort` 命令或[在Python 中实现它](http://stackoverflow.com/a/16954837/4279) (2认同)