首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕获过去x天用Python修改的文件

捕获过去x天用Python修改的文件
EN

Stack Overflow用户
提问于 2016-09-26 17:15:47
回答 1查看 50关注 0票数 1

我使用下面的脚本将现有的媒体文件重新编码为MP4,使用HandBrake CLI。这将是一个很长的过程,所以我希望有一种方法来捕获在过去7天中创建的文件,以及其他过滤器(关于文件扩展名),这样就可以更新新内容,而在不同的时间可以在单独的脚本上运行旧的内容。我必须在脚本中更改什么,才能捕获在过去7天中创建的文件?

代码语言:javascript
复制
import os
import time
import subprocess
import sys
import httplib
import urllib
from xml.dom import minidom
import logging
import datetime

#Script Directory setup
myDateTime = datetime.datetime.now().strftime("%y-%m-%d-%H-%M")
logdir = 'D:\\logs\\'
logfile = logdir + 'TV_encode-' + myDateTime + '.log'

#Log Handler Setup
logger = logging.getLogger('TV_encode')
hdlr = logging.FileHandler(logfile)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)

logger.info('Getting list of files to re-encode...')
fileList = []
rootdir = 'T:\\'
logger.info('Using %s as root directory for scan...' % rootdir)
for root, subFolders, files in os.walk(rootdir):
    for file in files:
        theFile = os.path.join(root,file)
        fileName, fileExtension = os.path.splitext(theFile)
        if fileExtension.lower() in ('.avi', '.divx', '.flv', '.m4v', '.mkv', '.mov', '.mpg', '.mpeg', '.wmv'):
            print 'Adding',theFile
            logger.info('Adding %s to list of file to re-encode.' % theFile)
            fileList.append(theFile)

runstr = '"C:\\Program Files\\Handbrake\\HandBrakeCLI.exe" -i "{0}" -o "{1}" --preset="Normal" --two-pass --turbo'

print '=======--------======='
logger.info('=======--------=======')
logger.info('Starting processing of files...')

while fileList:
    inFile = fileList.pop()
    logger.info('Original file: %s' % inFile)
    fileName, fileExtension = os.path.splitext(inFile)
    outFile = fileName+'.mp4'
    logger.info('New file: %s' % outFile)

    print 'Processing',inFile
    logger.info('Processing %s' % inFile)
    returncode  = subprocess.call(runstr.format(inFile,outFile))
    time.sleep(5)
    print 'Removing',inFile
    logger.info('Removing %s' % inFile)
    os.remove(inFile)

    logger.info('Sending Pushover notification...')
    conn = httplib.HTTPSConnection("api.pushover.net:443")
    conn.request("POST", "/1/messages.json",
                 urllib.urlencode({
                     "token": "TOKENHERE",
                     "user": "USERKEY",
                     "message": "Re-encoding complete for %s" % fileName,
                 }), {"Content-type": "application/x-www-form-urlencoded"})
    conn.getresponse()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-26 17:40:24

os.path.getmtime(filename)会在几秒钟内给你修改时间,从那个时代开始。

使用datetime模块将其转换为datetime对象,并像往常一样进行比较。

代码语言:javascript
复制
import datetime
import os

ONE_WEEK_AGO = datetime.datetime.today() - datetime.timedelta(days=7)

mod_date = datetime.datetime.fromtimestamp(os.path.getmtime(theFile))
if mod_date > ONE_WEEK_AGO:
    # use the file.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39708674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档