Python 在使用Unix时间戳时创建重复天数列表会导致额外的entires

Python 在使用Unix时间戳时创建重复天数列表会导致额外的entires,python,python-2.7,list-comprehension,unix-timestamp,Python,Python 2.7,List Comprehension,Unix Timestamp,我在这里得到了一些帮助,关于在两个数字之间创建一个值列表,其中每个数字重复一定次数。我现在试着用日期来做。我遇到的问题是,我认为我的日期必须是整数才能理解列表,但在unix中,它不是一个整数代表一天,而是一秒。因此,我的代码运行良好,但它每天有86400个条目(一天中的秒数)。有没有更简单的方法来处理这些日期?如果没有,我该怎么做才能将结果限制在几天,而不是几秒钟 from datetime import date import time import datetime now = date

我在这里得到了一些帮助,关于在两个数字之间创建一个值列表,其中每个数字重复一定次数。我现在试着用日期来做。我遇到的问题是,我认为我的日期必须是整数才能理解列表,但在unix中,它不是一个整数代表一天,而是一秒。因此,我的代码运行良好,但它每天有86400个条目(一天中的秒数)。有没有更简单的方法来处理这些日期?如果没有,我该怎么做才能将结果限制在几天,而不是几秒钟

from  datetime import date
import time
import datetime
now =  date.today()

LastDate = '3/24/2015'
LastDate =  int(time.mktime(datetime.datetime.strptime(LastDate, "%m/%d/%Y").timetuple()))
now =  int(time.mktime(datetime.datetime.strptime(str(now), "%Y-%m-%d").timetuple()))

Repeats = 10
ProjectDates = [x for x in range(now, LastDate+1) for y in range(Repeats)]
print ProjectDates
尝试以下方法:

创建表示今天的
datetime
对象:

from datetime import datetime, timedelta
now = datetime.now()   
today = datetime(year=now.year, month=now.month, day=now.day)
创建另一个表示目标日期的
datetime
对象:

lastdate = datetime(year=2015, month=3, day=24)
设置重复次数:

repeats = 10
现在创建一个生成器来生成范围内的所有天,一次一天(可以抽象为一个参数):

加在一起看起来是这样的:

from datetime import datetime, timedelta
now = datetime.now()   
today = datetime(year=now.year, month=now.month, day=now.day)

lastdate = datetime(year=2015, month=3, day=24)

repeats = 10

def generate_days(start, target):
    if start < target:
        c = start
        t = target
        while not (c.year, c.month, c.day)  == (t.year, t.month, t.day):
            yield c
            c += timedelta(days=1)
        yield c

project_dates = [x for x in generate_days(today, lastdate) for y in range(repeats)]

print project_dates
从datetime导入datetime,timedelta
now=datetime.now()
今天=日期时间(年=现在。年,月=现在。月,日=现在。日)
lastdate=datetime(年=2015,月=3,日=24)
重复次数=10次
def生成天数(开始、目标):
如果开始<目标:
c=开始
t=目标
而不是(年、月、日)=(年、月、日):
产量c
c+=时间增量(天数=1)
产量c
项目日期=[x代表x在范围内(重复)为y生成x天(今天,最后日期)]
打印项目日期

您的解决方案有效。我将倒数第二行修改为
project\u dates=[datetime.strftime(x,“%m-%d-%Y”)for x in generate\u days(今天,lastdate)for Y in range(repeats)]
,但这主要是首选项。谢谢我更改了一些代码。确保您有最后一次编辑。祝你好运:-)
project_dates = [x for x in generate_days(today, lastdate) for y in range(repeats)]
from datetime import datetime, timedelta
now = datetime.now()   
today = datetime(year=now.year, month=now.month, day=now.day)

lastdate = datetime(year=2015, month=3, day=24)

repeats = 10

def generate_days(start, target):
    if start < target:
        c = start
        t = target
        while not (c.year, c.month, c.day)  == (t.year, t.month, t.day):
            yield c
            c += timedelta(days=1)
        yield c

project_dates = [x for x in generate_days(today, lastdate) for y in range(repeats)]

print project_dates