如何在python中从用户输入中命名文件

时间:2014-05-23 13:40:59

标签: python file

我是编程的新手,我正在尝试创建用户数据的文件。我知道如何收集数据并将其写入文本文件,但我想将每个文件独立地命名为用户的姓氏。这是我到目前为止所做的:

fname=raw_input('Competitor forename : ')
sname=raw_input('Competitor surname : ')
email=raw_input('Email address : ')
phone=int(raw_input('Phone : '))
enter=raw_input('Have you already completed any games? (Yes/No) : ')
if enter=='yes':
    dcurrent=raw_input('Please tell us your current division : ')
    pcurrent=int(raw_input('Please tell us your current points : '))
    print'Thank you'

else:
    print'Welcome to the staff and postgraduate squash league'

d=open(fname,'w')
d.write(fname)
d.write(sname)
d.write(email)
d.close()

当我尝试创建文件时,此代码返回错误消息。所有其他尝试都导致了一个简单命名为(sname)的txt文件。

请帮忙!

2 个答案:

答案 0 :(得分:0)

你的问题:

  

我知道如何收集数据并将其写入文本文件但我愿意   喜欢将每个文件独立命名为用户的姓氏

您当前正在使用用户的名字来创建文件。用户的名字存储在fname中。稍后您将创建一个文件,其值存储在fname中:

d=open(fname,'w')

如果您要创建名称为用户姓氏的文件,则必须使用sname,如下所示,因为它包含用户的姓氏:

  d=open(sname,'w')

我希望这是你想要的。

答案 1 :(得分:0)

我试过你的代码并且工作正常。我没有收到任何错误消息。但我想如果你想收集多个人的数据,你必须打开文件作为" a"。并附加" \ n"文件的结尾。如果我是你,我使用这个代码替换你的;

fname=raw_input('Competitor forename : ')
sname=raw_input('Competitor surname : ')
email=raw_input('Email address : ')
phone=int(raw_input('Phone : '))
enter=raw_input('Have you already completed any games? (Yes/No) : ')
if enter=='yes':
    dcurrent=raw_input('Please tell us your current division : ')
    pcurrent=int(raw_input('Please tell us your current points : '))
    print'Thank you'

else:
    print'Welcome to the staff and postgraduate squash league'

userInformation = fname + " " + sname + " " + email

d=open(fname,'a')
d.write(userInformation+"\n")
d.close()