第一,第二种方法:
#第一种使用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()
alert(1)
test