用python对文件进行排序并按字母顺序打印
我需要编写一个python脚本,写出10个名字的列表,读回文件并按字母顺序打印出来 我有点明白我必须做什么,但如何做是我的问题,我不知道你是否需要将文本文件转换成一个列表,然后使用sort()函数,或者我是否可以通过拆分行来完成 这是我目前的代码:用python对文件进行排序并按字母顺序打印,python,file,sorting,Python,File,Sorting,我需要编写一个python脚本,写出10个名字的列表,读回文件并按字母顺序打印出来 我有点明白我必须做什么,但如何做是我的问题,我不知道你是否需要将文本文件转换成一个列表,然后使用sort()函数,或者我是否可以通过拆分行来完成 这是我目前的代码: my_file = open("Names.txt", "w") for i in range(1, 11): my_file.write(str(input("Please enter a name")) + ", \n") my_fi
my_file = open("Names.txt", "w")
for i in range(1, 11):
my_file.write(str(input("Please enter a name")) + ", \n")
my_file.close()
my_file = open("Names.txt", "r")
for line in my_file:
print(line)
for line in my_file:
my_file.sort()
my-file.close()
看起来您正在向文件中写入内容 就这样怎么样
print "".join(sorted(open("Names.txt", "r")))
这是因为当您迭代一个打开读取的文件时,它会占用文件的行数
顺便说一句,这也是代码不起作用的原因
当您在my_文件中为行执行操作时
会使用该文件,并将您留在文件末尾
然后,当您第二次这样做时,您已经在文件的末尾,因此您永远不会进入第二个循环
除此之外,您似乎正在尝试对每个名称进行排序(即Susan->Sansu)试试这个:
my_file = open("Names.txt", "w")
for i in range(1, 11):
my_file.write(str(input("Please enter a name")) + ", \n")
my_file.close()
my_file = open("Names.txt", "r")
for line in sorted(my_file):
print line
my-file.close()
这不会单独打印每一行,但对于家庭作业问题来说,这可能是一个足够好的答案。。。我猜-1不是你。。。但如果被否决的人留下评论就好了谢谢你给了我怀疑的理由,不,不是我。我也讨厌那些被否决的投票。这太棒了,但是有没有办法从输出中删除\n,或者甚至将它们打印在单独的行上?啊,出于某种原因,我认为结尾的新行是通过这个迭代自动删除的。。。我的坏朋友为什么要再次打开文件?为什么不另一个
f.seek(0)
?另外,注释字符是#
,而不是'
(见第一行)。@StevenRumbalski,因为我更喜欢在重写同一文件时使用“w”重新打开,我认为'
显然是一个打字错误,因为对其他5条注释使用了
my_file = open("Names.txt", "w")
for i in range(1, 11):
my_file.write(str(input("Please enter a name")) + ", \n")
my_file.close()
my_file = open("Names.txt", "r")
for line in sorted(my_file):
print line
my-file.close()