这是我现在拥有的代码
fname = input(">>Please Enter a file name followed by .txt ")
def writedata():
i=0
for i in range(3):
f = open(f"{fname}", 'w')
stdname = input('>>\tStudent Name: \t')
marks = input('>>\tMark for exam: \t')
f.write(stdname)
f.write("\n")
f.write(marks)
f.close()
def main():
writedata()
预期的输出
>> Please Enter a file name, followed by .txt: studentRecord.txt
>> Enter record for student 1 in the format of [1. Name, 2. Mark]:
>> Student Name: James White
>> Mark for exam: 100
>> Enter record for student 2 in the format of [1. Name, 2. Mark]:
>> Student Name: James Brown
>> Mark for exam: 85
>> Enter record for student 3 in the format of [1. Name, 2. Mark]:
>> Student Name: James King
>> Mark for exam: 75
>> Student record writing completed!
我尝试了上面的代码,只得到了文本文件中的最后一个用户输入。我应该从def main()传递文件名,但我不知道怎么做,我一直得到无法到达的错误。有人能帮助我,并解释我做错了什么吗?谢谢你的时间和考虑。
3条答案
按热度按时间xe55xuns1#
您正在使用
write (w)
文件方法,该方法会用您传递的任何新数据覆盖您的文件。您需要使用append (a)
文件方法,该方法每次都会追加到您的文件中。The BSD fopen manpage定义档案方法如下:
您也可以查看python的文档以获得更多信息:https://docs.python.org/3/library/functions.html#open
vd8tlhqk2#
请注意
您正在使用
w
模式,该模式每次都会覆盖文件。请改用a+
模式,该模式会附加到文件,并在文件尚不存在时创建该文件。xghobddn3#
谢谢你们的帮助!这是我想出来的答案。