生成生日日期的排序列表并将每个日期附加到文件中的换行符
Generate a sorted list of birthday dates and append each date to a newline in a file
所以,我一直在尝试生成一个包含生日日期的词表。我正在尝试将每个值附加到文件 birdthday_wordlist.txt 中的换行符。文件和格式应该是这样的:
01/01/1998
02/01/1998
03/01/1998
dd/mm/yyyy
12/12/2000
我只能生成 dd、mm 或 yyyy,使用如下脚本:
with open('XXXXXX_wordlist.txt', 'w') as birdthday_wordlist:
for i in range(1980, 2000):
birdthday_wordlist.write('{}\n'.format(i))
我知道有办法,暂时想不通。
您可以使用 while 和 datetime 函数。您可以根据需要设置 ini 日期,以及您想要的结束日期。每次迭代总计 1 天
import datetime
ini=datetime.date(year=1980,month=1,day=1)
end=datetime.date(year=2000,month=1,day=1)
while ini<=end:
birdthday_wordlist.write(ini.strftime('%d/%m/%Y')+'\n')
ini=ini+datetime.timedelta(days=1)
如果我明白你在问什么,它与问题非常相似 here
我已经修改了将日期写入文件的答案:
from datetime import timedelta, date
def daterange(start_date, end_date):
for n in range(int ((end_date - start_date).days)):
yield start_date + timedelta(n)
start_date = date(1980, 1, 1)
end_date = date(2000, 1, 1)
with open('XXXXXX_wordlist.txt', 'w+') as birdthday_wordlist:
for single_date in daterange(start_date, end_date):
birdthday_wordlist.write('%s\n' % single_date.strftime("%d/%m/%Y"))
将输出:
01/01/1980
02/01/1980
03/01/1980
04/01/1980
05/01/1980
...
31/12/1999
如果您想要一个不使用导入包的解决方案,您可以执行以下操作:
data = []
f_string = "%02d/%02d/%04d\n" # Will be presented as dd/mm/yyyy format
for year in range(1980, 2000):
for month in range(1, 12):
for day in range(1, 31):
data.append(f_string % (day, month, year))
with open('XXXXXX_wordlist.txt', 'w') as birthday_wordlist:
for item in data:
birthday_wordlist.write(item)
所以,我一直在尝试生成一个包含生日日期的词表。我正在尝试将每个值附加到文件 birdthday_wordlist.txt 中的换行符。文件和格式应该是这样的:
01/01/1998
02/01/1998
03/01/1998
dd/mm/yyyy
12/12/2000
我只能生成 dd、mm 或 yyyy,使用如下脚本:
with open('XXXXXX_wordlist.txt', 'w') as birdthday_wordlist:
for i in range(1980, 2000):
birdthday_wordlist.write('{}\n'.format(i))
我知道有办法,暂时想不通。
您可以使用 while 和 datetime 函数。您可以根据需要设置 ini 日期,以及您想要的结束日期。每次迭代总计 1 天
import datetime
ini=datetime.date(year=1980,month=1,day=1)
end=datetime.date(year=2000,month=1,day=1)
while ini<=end:
birdthday_wordlist.write(ini.strftime('%d/%m/%Y')+'\n')
ini=ini+datetime.timedelta(days=1)
如果我明白你在问什么,它与问题非常相似 here
我已经修改了将日期写入文件的答案:
from datetime import timedelta, date
def daterange(start_date, end_date):
for n in range(int ((end_date - start_date).days)):
yield start_date + timedelta(n)
start_date = date(1980, 1, 1)
end_date = date(2000, 1, 1)
with open('XXXXXX_wordlist.txt', 'w+') as birdthday_wordlist:
for single_date in daterange(start_date, end_date):
birdthday_wordlist.write('%s\n' % single_date.strftime("%d/%m/%Y"))
将输出:
01/01/1980
02/01/1980
03/01/1980
04/01/1980
05/01/1980
...
31/12/1999
如果您想要一个不使用导入包的解决方案,您可以执行以下操作:
data = []
f_string = "%02d/%02d/%04d\n" # Will be presented as dd/mm/yyyy format
for year in range(1980, 2000):
for month in range(1, 12):
for day in range(1, 31):
data.append(f_string % (day, month, year))
with open('XXXXXX_wordlist.txt', 'w') as birthday_wordlist:
for item in data:
birthday_wordlist.write(item)