我目前的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将多个文件夹发送到另一个文件夹。
答案 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行之前。
除非我误解了您的问题,否则应该这样做。