簡體   English   中英

為什么我的代碼在文件中重復多次

[英]Why does my code repeat itself more than once in a file

您好,我在使用此代碼時遇到麻煩。 當它寫入文件時,文件中的文本會重復。 當代碼循環並添加更多文本時,它將加入所插入的文本。 我想知道您是否可以幫助我停止重復的文本,但仍然寫到新行。 我希望第一人稱信息在第一行,第二人稱信息在第二行,依此類推,謝謝。

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()

這是因為您實際上使用了兩個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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM