我在程序中创建一个文件有一个小问题

时间:2012-10-06 20:38:57

标签: python python-3.x

我正在编写一个程序,用户输入一些名称,然后创建一个带有这些名称的文件。我正在使用Python 3.2。

number = eval(input("How many names are there? "))
#Say the user enters 2
outfile = open('names.txt', 'w')

for i in range(number):
    name = input("Enter a name >> ")
#Say the user first enters Bob
#Then the user enters Joe

print (name, file=outfile)
outfile.close()
print ("Names have been written to file")

它有效,但有一个问题。现在显示的文件只读取一行:“Joe”。没有其他名称出现,只有最后一个。

2 个答案:

答案 0 :(得分:3)

您有以下代码: -

for i in range(number):
    name = input("Enter a name >> ")
#Say the user first enters Bob
#Then the user enters Joe

print (name, file=outfile)

你的print语句应该在循环内..

for i in range(number):
    name = input("Enter a name >> ")
    print (name, file=outfile)

答案 1 :(得分:0)

压痕!在您的代码现在编写时,语句print (name, file=outfile)将执行一次,并在循环之外执行。所以最后一次name设置为任何东西都是剩下的。

要解决此问题,请确保在输入后立即调用写入文件的语句,为此,您应该将其缩进到输入语句的深度,以便在输入时调用多次被带走。