[英]How to save all user input from for loop into text file
我有以下任務:
我們將編寫一個名為 student_register.py 的程序,允許學生注冊考場。
首先,詢問用戶有多少學生注冊。
創建一個為該數量的學生運行的 for 循環
每個循環都要求學生輸入他們的 ID 號。
將每個 ID 號寫入名為 reg_form.txt 的文本文件
這將用作他們到達考場時簽署的出勤登記冊。
我認為我擁有的以下代碼很接近,因為它保存了文本文件,但只保存了第一個輸入的 ID 號,不顯示其他代碼。
students = int(input("Please enter the amount of students registered."))
id_number = ""
for a in range (0, students):
id_number = (int(input("Please enter student ID numbers.")))
id_number = id_number + 1
reg_form = open('reg_form.txt', 'w')
reg_form.write("Student ID numbers: \n" + str(id_number))
print ("Thank you, ID numbers saved to txt file reg_form")
您每次循環都重新打開文件,並以write
模式打開它。 這意味着您每次循環都會覆蓋文件中的任何數據。
一個簡單的解決方法是使用“a”以追加模式打開文件,或者您可以將結果存儲在列表中,然后在最后一次性寫入所有內容,這樣會更好。
在完成文件后關閉文件也是一種很好的做法,請參閱為什么我應該使用 Python 關閉文件。 雖然您可以使用reg_form.close()
做到這一點, reg_form.close()
更好的方法是使用上下文管理器,因為這可以保證文件始終關閉:
with open("reg_form.txt", "w") as my_file:
my_file.write("some data")
它沒有保存,因為您沒有關閉文件流。 我建議您將它與with
關鍵字一起with
,它處理文件的打開和關閉以及保存數據。
students = int(input("Please enter the amount of students registered."))
id_number = ""
for a in range (0, students):
id_number = (int(input("Please enter student ID numbers.")))
id_number = id_number + 1
with open('reg_form.txt', 'w') as file:
file.write("Student ID numbers: \n" + str(id_number))
print ("Thank you, ID numbers saved to txt file reg_form")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.