如何将getmtime用于多个文件

时间:2016-08-14 15:20:21

标签: python python-2.7

我目前的python脚本:

import ftplib
import hashlib
import httplib
import pytz
from datetime import datetime
import urllib
from pytz import timezone
import os.path, time
import glob

def ftphttp():
 ts = os.path.getmtime('Desktop/images/frame00.png') 
 dt = datetime.fromtimestamp(ts, pytz.utc)

 timeZone= timezone('Asia/Singapore')
 #converting the timestamp in ISOdatetime format
 localtime = dt.astimezone(timeZone).isoformat()

 cam = "002"
 lscam = localtime + cam
 ftp = ftplib.FTP('localhost','kevin403','S$ip1234')
 ftp.cwd('/var/www/html/image')

 m=hashlib.md5()
 m.update(lscam)
 dd=m.hexdigest()

 for image in glob.glob(os.path.join('Desktop/images/frame**.png')):
  with open(image, 'rb') as file:
   ftp.storbinary('STOR '+dd+ '.png', file)

 x = httplib.HTTPConnection('localhost', 8086)
 x.connect()
 f = {'ts' : localtime}
 x.request('GET','/camera/store?cam='+cam+'&'+urllib.urlencode(f)+'&fn='+dd)
 y = x.getresponse()
 z=y.read()
 x.close()
 ftp.quit()

现在这行代码只获得一个文件时间戳:

ts = os.path.getmtime('Desktop/images/frame00.png'). 

但是,如果我从文件夹发送多个文件并获取所有文件的时间戳,该怎么办?有可能吗?我使用ftplib将多个文件夹发送到另一个文件夹。

1 个答案:

答案 0 :(得分:0)

如果所涉及的目录是Desktop / images,您可以遍历该目录并获取该目录中所有文件的getmtime

您可以替换

ts = os.path.getmtime('Desktop/images/frame00.png') 
dt = datetime.fromtimestamp(ts, pytz.utc)

类似:

dirToCheck = 'Desktop/images'
for root, _, file in os.walk(dirToCheck):
    fileToCheck = os.path.join(root, file)
    ts = os.path.getmtime(fileToCheck) 
    dt = datetime.fromtimestamp(ts, pytz.utc)
    print ts, dt

使用这种方法,您将需要提供images目录的绝对路径,还可能需要将时间戳记存储在带有文件-timestamp的列表或词典中。

如果只想对png进行操作,还可以添加如下一行:

if file.endswith(".png"): 

在fileToCheck行之前。

除非我误解了您的问题,否则应该这样做。