Python 在提示文件中排序和打印多行

Python 在提示文件中排序和打印多行,python,list,sorting,user-input,Python,List,Sorting,User Input,以下是我现有的代码: filename = input("Enter file name (with extension) to read: ") if filename == 'x': exit() else: c = open(filename, "r") print("\nThe file,", filename, "opened successfully!") print(&q

以下是我现有的代码:

filename = input("Enter file name (with extension) to read: ")
if filename == 'x':
    exit()
else:
    c = open(filename, "r")
    print("\nThe file,", filename, "opened successfully!")
    print("The file", filename)
    print(c.readlines())
    c.close()

我的输出是我输入的文件,这太棒了!但我的问题是,我只需要弄清楚如何按排序顺序打印列表。由于列表是由用户输入生成的,我没有排序功能的经验,我会直接对c.readlines进行排序吗?

编程就是分解,将大问题分解成小问题。程序中有几个不同的任务:提示用户输入文件名,打开该文件,对行进行排序,然后打印。你已经掌握了前两个问题,所以现在就把这些问题抛在脑后,把注意力集中在后两个问题上。打开文件后,用户是否硬编码并输入文件不会有任何区别

要对列表进行排序,您必须使用以下主要选项:调用
l.sort()
对其进行适当排序,或调用
sorted(l)
返回已排序的副本而不修改原始副本。让我们使用第二个循环遍历
sorted()

调用
readlines()
是可选的。您还可以直接在文件上循环,这是在行上循环的缩写

for line in sorted(c):
    print(line)

(我自己更喜欢显式地调用
readlines()
。这是一种风格选择;任何一种方式都可以接受。)

请重复并从后面开始。“演示如何解决此编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后就您的算法或技术提出具体问题。堆栈溢出不是为了替换现有的文档和教程。排序和打印在可用的资料中都有很好的介绍。很抱歉,我觉得这正是我在回答问题时所做的——我在编写整个代码时没有理解如何对提示输入进行排序。我读过4本书、教程和其他信息,但仍然不确定如何执行此操作,所以我来这里寻求帮助。那我做错了什么?这很有道理,谢谢你,约翰。我以前有一个代码是用sorted函数排序的,但它不是用户输入文件,所以我真的很困惑该如何工作。这太有用了!
for line in sorted(c):
    print(line)