我想按字母顺序排列名为“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中完成这个任务,您可以在Unix系统的命令行中执行此操作:
sort shopping.txt -o shopping.txt
而且您的文件已经排序。当然,如果您真的希望用Python实现这一点:很多其他人提出的读取文件并进行排序的解决方案也可以正常工作。
使用sort()
或sorted()
函数是实现这一点的简单方法。
lines = shopping.readlines()
lines.sort()
或者:
lines = sorted(shopping.readlines())
缺点是你必须将整个文件读入内存,但如果这不是问题,你可以使用这个简单的代码。使用sorted
函数。
with open('shopping.txt', 'r') as r:
for line in sorted(r):
print(line, end='')
使用pathlib
,您可以使用以下功能:
from pathlib import Path
file = Path("shopping.txt")
print(sorted(file.read_text().split("\n")))
如果您想在磁盘上对文件进行排序
from pathlib import Path
file = Path("shopping.txt")
file.write_text(
"\n".join(
sorted(
file.read_text().split("\n")
)
)
)
试一下这个
shopping = open('shopping.txt')
lines = shopping.readlines()
lines.sort()
for line in lines:
print(line)
with
语句作为外部上下文管理器。 - Sysanin