2016-02-04 56 views
0
name = input("please enter your name\n") 
score1=input("please enter your first test score out of 10\n") 
score2=input("please enter your second test score out of 10\n") 
score3=input("please enter your third test score out of 10\n") 
class_=input("please enter the name of your class either class1,class2 or  class3\n") 
if class_== ("class1"): 
myfile=open("class1.txt","a") 
myfile.write(name) 
myfile.write("-") 
myfile.write(score1) 
myfile.write("-") 
myfile.write(score2) 
myfile.write("-") 
myfile.write(score3) 
myfile.write("-") 
myfile.write(class_) 
myfile.write("\n") 
myfile.close() 
elif class_== ("class2"): 
myfile=open("class2.txt","a") 
myfile.write(name) 
myfile.write("-") 
myfile.write(score1) 
myfile.write("-") 
myfile.write(score2) 
myfile.write("-") 
myfile.write(score3) 
myfile.write("-") 
myfile.write(class_) 
myfile.write("\n") 
myfile.close() 
elif class_== ("class3"): 
myfile=open("class3.txt","a") 
myfile.write(name) 
myfile.write("-") 
myfile.write(score1) 
myfile.write("-") 
myfile.write(score2) 
myfile.write("-") 
myfile.write(score3) 
myfile.write("-") 
myfile.write(class_) 
myfile.write("\n") 
myfile.close() 
else: 
print("please eter a valid class name") 
sorting = input("please enter the name of the class you wish to see\n") 
if sorting ==("class1"): 
myfile=open("class1.txt","r") 
for line in myfile: 
    class_name = myfile.readline() 
    class_name.sort() 
    print (class_name) 
    myfile.close() 

当我运行在Python它的工作,直到我问我想看看当我选择1级它总是出现说51行,在 class_name.sort(其类的代码reverse = True) AttributeError:'str'对象没有'sort'属性 我不知道如何解决这个问题。如何排序的文本文件按字母顺序

+0

是否要对class_name进行排序(如@Idos所示),还是要对所有名称进行排序(wit h分数)在文本文件中? –

+0

我想按字母顺序排列名称并打印姓名以及他们的分数 – anomoyus

+0

这是什么意思---- 1356aabcdeeegllnrrssy它出现了,当我运行代码 – anomoyus

回答

0

你不能在一个字符串中使用sort()(这需要list)那样,使用:

>>> class_name = 'myclassname' 
>>> class_name = ''.join(sorted(class_name)) 
>>> class_name 
'aacelmmnssy' 
如果你希望所有的行排序

使用:

lines = sorted(myfile.readlines()) 
+0

这实际上是对class_name中的文本进行排序,但OP没有表示对类* .txt中的名称(行)进行排序? –

+1

我基于我的回答他显示的错误(AttributeError:'str'object has no attribute'sort')。如果他想要一个特定的答案,他应该提供一个包含MCVE的具体问题:) – Idos

+0

当我使用该代码并运行它时,它想出了这个: – anomoyus

0

事情是这样的:

with open(myfile, 'r') as r: 
    for line in sorted(r): 
     print(line, end='')