【问题标题】:Sorting a text file alphabetically (Python)按字母顺序对文本文件进行排序(Python)
【发布时间】:2017-03-30 16:09:57
【问题描述】:

我想按字母顺序对文件“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()

【问题讨论】:

    标签: python sorting


    【解决方案1】:

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

    sort shopping.txt -o shopping.txt
    

    您的文件已排序。当然,如果你真的想要 python:很多其他人提出的读取文件和排序的解决方案效果很好

    【讨论】:

    • 它比从头开始编写脚本更好
    【解决方案2】:

    一个简单的方法是使用sort()sorted() 函数。

    lines = shopping.readlines()
    lines.sort()
    

    或者:

    lines = sorted(shopping.readlines())
    

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

    【讨论】:

      【解决方案3】:

      使用sorted函数。

      with open('shopping.txt', 'r') as r:
          for line in sorted(r):
              print(line, end='')
      

      【讨论】:

      • 请告诉我这是否会占用内存中的所有行。这将如何工作。这是否会延迟读取输入。
      • @AkshayHazari: sorted() 将所有行加载到内存中。为避免加载所有行,您可以调用外部sort 命令或implement it in Python
      • 如何替换现有文件?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多