2016-01-20 40 views
0

我目前在做计算机科学方面的GCSE课程,我们的任务是让人们输入他们的姓氏,并根据姓氏中的第一个字母将其保存到两个不同的文件中。这两个文件是字母A-L(它们将用正确的第一个字母保存),但是另一个文本文件是M-Z,当在该范围中键入任何字母时似乎不会保存任何内容。我如何根据他们的第一个字母将它保存到2个不同的文件中?如何将文本保存到2个不同的文件?

这是我有:

MyFile1 = open("A-L.txt", "wt") 
    MyFile2 = open("M-Z.txt", "wt") 
    myList = ([]) 

    Surname = input("What is your surname"); 
    if Surname[0] in ["A","B","C","D","E","F","G","H","I","J","K","L"]: 
     myList.insert(2, Surname) 
    for item in myList: 
     MyFile1.write(item+"\n") 
    if Surname[0] in ["M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]: 
     MyFile2 = open("M-Z.txt", "wt") 
     myList.insert(0, Surname) 
    for item in myList: 
    MyFile1.write(item+"\n") 
+0

只写入第一个文件。而不是打开'if'块中的文件,为什么不写入呢?你的'for'循环的缩进也是错误的。 – Arc676

+0

为什么要将名称添加到列表中,然后将列表写入文件?你在程序后面的某个地方使用列表吗? –

回答

1

没有所有的清单业务:

MyFile1 = open("A-L.txt", "wt") 
MyFile2 = open("M-Z.txt", "wt") 

Surname = input("What is your surname"); 
if Surname[0] in ["A","B","C","D","E","F","G","H","I","J","K","L"]: 
    MyFile1.write(Surname + "\n") 
if Surname[0] in ["M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]: 
    MyFile2.write(Surname + "\n") 
0

为什么不直接选择相应的文件名?

A_TO_L = set("ABCDEFGHIJKL") 

surname = input("What is your surname? ") 

if surname[0] in A_TO_L: 
    fname = "A-L.txt" 
else: 
    fname = "M-Z.txt" 

with open(fname, "wt") as outf: 
    outf.write("\n".join(mylist)) 
相关问题