【问题标题】:TypeError: '>' not supported between instances of 'datetime.date' and 'str'TypeError:“datetime.date”和“str”的实例之间不支持“>”
【发布时间】:2021-01-01 19:23:50
【问题描述】:

在下面的代码中,我试图验证放入目录中的文件是否是新文件,并且应该开始处理它。我想将新文件的创建日期与最后处理的文件的创建日期进行比较。这个最后创建日期存储在目录上的一个文件中(如果你有存储日期的更好想法,我愿意接受)我的问题是存储在文件中的日期是一个字符串,我做不到新日期与旧日期的比较。底部的 if 语句是引发错误的原因。我正在比较的日期是 NewCreateTime 的类型为 LastCreateTime 的类型为

如何将两个日期都转换为 datetime.objects 或比较日期时间字符串?

def is_file_ready(File_Name, Path, Ready, cTimeFile):
    NCTtstamp = path.getctime(File_Name)#create date of new file found in ready dir.
    NCTobj = str(datetime.fromtimestamp(NCTtstamp))
    NewCreateTime = datetime.strptime(NCTobj, '%Y-%m-%d %H:%M:%S.%f') 
    print('NewCreateTime is of type')
    print(type(NewCreateTime))
    
    LastCreateTimeFile = path.join('/', Path, Ready, cTimeFile)
    try:
        with open(LastCreateTimeFile, 'r') as lct: # get the last create time
            LCTline = lct.readline()
    except FileNotFoundError as fnferr:
        print('COULD NOT READ FILE!:\n', + File_Name + '\n\n', fnferr)

    LCTstr = LCTline.rstrip() 
    LastCreateTime = datetime.strptime(LCTstr, '%Y-%m-%d %H:%M:%S.%f')
    print('LastCreateTime is of type')
    print(type(LastCreateTime)) 
    if NewCreateTime > LastCreateTimeFile:
        
    if NewCreateTime > LastCreateTimeFile:
        return(NewCreateTime, True, LastCreateTime)

【问题讨论】:

  • 错字:您想与“LastCreateTime”进行比较,但您使用文件路径“LastCreateTimeFile”
  • 谢谢你盯着看太久没注意到。

标签: python string datetime


【解决方案1】:

不是将NewCreateTimeLastCreateTime 进行比较,而是在与不同类型的LastCreateTimeFile 进行比较。

改变:

if NewCreateTime > LastCreateTimeFile:

if NewCreateTime > LastCreateTime:

【讨论】:

    猜你喜欢
    • 2021-11-21
    • 2018-09-08
    • 1970-01-01
    • 2018-01-10
    • 2018-11-22
    • 2019-11-12
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多