用Python实现读取文件内容进行排序

第一,第二种方法:

#第一种使用readline()单行获取
def pythonit():
    cj = []
    with open("cj.txt","r",encoding="utf-8") as f:
        while True:
            readline = f.readline()
            if len(readline) == 0:
                break
            list = readline.split(",")[-1].strip()
            cj.append(list)
            cj.sort()
        print(cj)
pythonit()

#第二种使用readlines()多行获取
def pythonit():
    cj = []
    with open("cj.txt","r",encoding="utf-8") as f:
        readlines = f.readlines()
        for i in readlines:
            list = i.split(",")[-1].strip()
            cj.append(list)
            cj.sort()
        print(cj)
pythonit()

下面是cj.txt文本内容:

小明,85
小红,81
小亮,87
小高,94
小赵,90
小白,79

这两段代码都是用于读取文件并进行处理的函数。它们的主要区别在于读取文件的方式:

第一种方式使用 readline()

  • 在每次循环中,使用 f.readline() 逐行读取文件。
  • 对于每行内容,进行分割、去除空格等处理后添加到 cj 列表中。
  • 最后,对 cj 列表进行排序并打印。

第二种方式使用 readlines()

  • 使用 f.readlines() 一次性读取文件的所有行,并将它们存储在 readlines 列表中。
  • 然后通过遍历 readlines 列表,对每行进行相同的处理,并添加到 cj 列表中。
  • 同样,对 cj 列表进行排序并打印。

两种方式的基本思路是相似的,都是读取文件、处理内容并进行排序。选择使用哪种方式取决于具体的需求和文件的大小。如果文件较小,使用 readline() 逐行读取可能更灵活;如果文件较大,一次性读取所有行可能更高效。你可以根据实际情况选择适合的方式😉

经过ai运行检测报告存在问题:
1.排序效率:在两种方法中,你都在每次添加元素后对整个列表进行排序。这实际上是不必要的,并且会降低程序的效率。你可以在所有元素都添加到列表后,只排序一次。
2.readlines()方法:在第二种方法中,你使用了 readlines() 方法来一次性读取所有行。这在文件很大时可能会导致内存问题,因为所有行都会一次性加载到内存中。相比之下,第一种方法使用 readline() 在每次迭代时只读取一行,这在处理大文件时更为高效。
下面是一个改进的版本,它解决了上述问题

def pythonit():  
    cj = []  
    with open("cj.txt", "r", encoding="utf-8") as f:  
        for readline in f:  
            item = readline.split(",")[-1].strip()  
            cj.append(item)  
    cj.sort()  
    print(cj)  
  
pythonit()
Python读取文件内容进行排序

我来吐槽

*

*

已有 2 条评论