第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在文件夾Python中讀取兩個(gè)日期之間的文件

在文件夾Python中讀取兩個(gè)日期之間的文件

瀟湘沐 2021-03-28 18:06:08
我正在嘗試讀取startdate和之間的文件夾中的文件名enddate。(Datestamp在文件名上)我正在嘗試這樣的事情。有沒有更好或更有效的方法可以做到這一點(diǎn)?我在該文件夾中有成千上萬個(gè)文件,但是基于開始/結(jié)束日期值,通常我之間會(huì)有一個(gè)很小的百分比文件。startdate = "05/05/2013"enddate = "06/06/2013"mypath = "C:\\somepath\\"onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]for filetoread in onlyfiles:  filesBetweenDate = [ f for f in time.strftime('%m/%d/%Y',   time.gmtime(os.path.getmtime(somepath+filetoread ))) if f > startdate and f < enddate]
查看完整描述

2 回答

?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊

這應(yīng)該可以解決問題,它具有幾個(gè)不錯(cuò)的額外功能,并且只需循環(huán)一次即可。


import calendar

from datetime import datetime

import os

import glob, os


mypath = "/Users/craigmj/"

timefmt = "%Y%m%d %H:%M:%S"

start = calendar.timegm(datetime.strptime("20130128 00:00:00", timefmt).timetuple())

end = calendar.timegm(datetime.strptime("20130601 00:00:00", timefmt).timetuple())


def test(f):

    if (not os.path.isfile(f)):

        return 0

    (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = os.stat(f)


    return start<=ctime and end>=ctime


files = [f for f in glob.glob(os.path.join(mypath, "*")) if test(f)]

for f in files:

   print(f)

首先,我使用,glob.glob以便您可以在選擇文件時(shí)使用通配符。如果您可以更具體地選擇要選擇的文件(例如,如果文件中包含日期戳,則可以節(jié)省時(shí)間)。


其次,我ctime在test函數(shù)中使用,但是您可以輕松使用mtime-上次修改時(shí)間。


最后,我是針對時(shí)間的,而不僅僅是針對日期的。


我不確定100%唯一的事情是這是否在所有時(shí)區(qū)都是安全的。在深入研究文檔以做出決定之前,您可能需要使用示例進(jìn)行檢查。


查看完整回答
反對 回復(fù) 2021-04-01
  • 2 回答
  • 0 關(guān)注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號