2016-01-20 65 views
1

你好,我是越來越麻煩此代碼。當它寫入文件時,文件內的文本會重複。當代碼循環並添加更多文本時,它會連接插入的文本。我想知道如果你能幫我阻止文本重複自己,但仍然寫一個新的線。 我想第一人的信息是在1號線和第二個人信息是在第二線等,謝謝你。爲什麼我的代碼不止一次重演文件

myFile1 = open("a-l.txt", "wt") 

myFile2 = open("m-z.txt", "wt") 


myList1 = ([]) 
myList2 = ([]) 

while 1: 
    surName = input("Enter your surname name:") 
    if surName[0] in ("A","B","C","D","E","F","G","H","I","J","K","L"): 
     myList1.append(surName) 
     title = input("Enter your prefered title:") 
     myList1.append(title) 
     firstName = input("Enter your first name:") 
     myList1.append(firstName) 
     bDay = input("Enter birthdate in mm/dd/yyyy format:") 
     myList1.append(bDay) 
     phoneNum = input("Enter your phone number:") 
     myList1.append(phoneNum) 
     email = input("Please enter your email.") 
     myList1.append(email) 
     for item in myList1: 
      myFile1.write(','.join(str(x) for x in myList1) + '\n') 

    elif surName[0] in ("M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"): 
     myList2.append(surName) 
     title = input("Enter your prefered title:") 
     myList2.append(title) 
     firstName = input("Enter your first name:") 
     myList2.append(firstName) 
     bDay = input("Enter birthdate in mm/dd/yyyy format:") 
     myList2.append(bDay) 
     phoneNum = input("Enter your phone number:") 
     myList2.append(phoneNum) 
     email = input("Please enter your email:") 
     myList2.append(email) 
     for item in myList2: 
      myFile2.write(','.join(str(x) for x in myList2) + '\n') 
    elif surName == "1": 
     break 
myFile1.close() 
myFile2.close() 

回答

2

這是因爲你實際上使用了兩個for循環。您正在使用列表理解將整個列表連接到一行並將其寫入文件,但是您要做X次,其中X是列表中的項目數。

for item in myList1: 
    myFile1.write(','.join(str(x) for x in myList1) + '\n') 

你不需要外for循環

myFile1.write(','.join(str(x) for x in myList1) + '\n') 
+0

非常感謝您 – Jdowg

+0

它不會再重複的代碼而這正是我想要的,但它加入了文件中的文本一起。 @Brendan亞伯 – Jdowg

+0

什麼是理想的行爲?你不希望文字連接在一起? –

相關問題