【发布时间】:2022-11-21 23:47:00
【问题描述】:
这是我现在的代码
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() 传递文件名,但我不知道该怎么做,我一直收到无法访问的错误。有人可以帮助我并解释我做错了什么吗?感谢您的时间和考虑。
【问题讨论】:
-
您需要 append 方法,而不是 write。您每次都在覆盖文件。
-
阅读documentation of
open()。模式'w'表示打开写入,首先截断文件,这意味着它清除了文件的所有内容。
标签: python python-3.x