Python age finder和数据保护程序

时间:2014-03-01 20:50:59

标签: python

我正在做一个项目,用户在其中输入详细信息并将其保存到文件中。我让他们输入了年龄,但我希望它能自动计算当时的年龄。

我想要的另一个功能是让文件名不同。例如1.dat,则下一个输入将是2.dat

这是到目前为止的代码:

import os
from time import gmtime, strftime

first_name= raw_input("Type your first name... ")
second_name= raw_input("Type your second name... ")
age= raw_input("Type your age... ")
yearofbirth= raw_input("Type the year you were born... ")

birthyear=yearofbirth

os.system('mkdir Data')

savefile=open('Data/data.dat','w')
savefile.write('Firstname: '+first_name+'\n')
savefile.write('Secondname: '+second_name+'\n')
savefile.write('Age: '+age+'\n')
savefile.write('Year Of Birth: '+yearofbirth+'\n')
savefile.close()

print('Saved')

first_name=None
second_name=None
age=None
yearofbirth=None

int(float(birthyear))

adage=strftime("%Y")
agey = yearofbirth - adage
openfile=open('Data/data.dat','r')
name=openfile.read().split()

first_name=name[1]
second_name=name[3]
age=name[5]
yearofbirth=name[9]

print first_name+" "+second_name+" "+age+" "+yearofbirth
print agey

2 个答案:

答案 0 :(得分:0)

根据age计算yearofbirth

from datetime import datetime

def time_since(year):
    datetime.now().year - year

请注意,您可能会错过1年的实际年龄,因为您没有考虑数月和数天。

允许将多个配置文件保存到多个文件中:

def save_profile(filename):
    # here goes everything from the first `raw_input()` to file `close()`
    # use `open(filename, 'w')` instead of `open('data.dat', 'w')

def save_multiple_profiles(number):
    for n in range(number):
        save_profile(number + '.dat')

答案 1 :(得分:0)

问题有点模糊。您提到的一个问题是想知道如何为每个文件分配新文件名。为此,您必须知道现有文件的名称。有很多方法可以做到这一点。这是一种方法

def find_next_file_number():
    existing = glob.glob(work_dir +'\\' + 'data_*')
    numbers = [int(file_name.split('_')[-1].split('.')[0]) for file_name in existing()
    numbers.sort()
    return str(numbers[-1] + 1)

上述函数假设您的数据文件以data_INTEGER.txt

的形式存储

如果您愿意做

之类的事情,请使用
new_file_num = find_next_file_number()
new_file_name = 'data_' + new_file_num + '.txt'
outref = open(work_dir +'\\' + new_file_name,'w')