java與python 交互為兩種情況:
??? 1:直接調(diào)用接口(url)
???? 2:調(diào)用二者的類
其中第一種不過多贅述:
#Author:morefree
#-*- coding:utf-8-*-
import cv2
import requests
import os
import logging
import glob
def pic(i):
? ? pic_list = glob.glob('D:\\untitled\\book\\demovideo\\video{}.png'.format(i))
? ? print(pic_list)
? ? return pic_list
def javaapi(filename):
? ? url=""
? ? data={"parentId":"","fileCategory":"personal","fileSize":179,"fileName":"video{}.png".format(filename),"uoType":1}
? ? #filesize:指的是文件的字節(jié)大小镶殷。 filename:指的是你上傳之后保存的文件名
? ? # headers={''}
? ? files={'file':('video{}.png'.format(filename),open('D:\\untitled\\book\\demovideo\\video{}.png'.format(filename),'rb'),'image/png',{})}
? ? r=requests.post(url,data,files=files)
? ? print(r.text)
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(filename='my.log', level=logging.DEBUG, format=LOG_FORMAT)
# def save_pic(filepath="book\img"):
#? ? if not os.path.exists(filepath):
#? ? ? ? print("create filepath")
#? ? ? ? os.makedirs(filepath)
#? ? ? ? logging.debug("create a path")
#? ? ? ? # filehouzhui = os.path.splitext(pic)[1]
#? ? ? ? # filename = "{}\{}".format(filepath, file_name)
#? ? ? ? #
#? ? ? ? # urllib.request.urlretrieve(pic, filename=filename)
path1='D:\week04c.mp4'#文件名
vc=cv2.VideoCapture(path1)
fps=vc.get(5)
# print(fps)
# print("count",vc.get(7))
# print(type(vc))
logging.info("the video can be read")
count1=1
success =True
time1=1000
try:
? ? while (success):
? ? ? ? success,frame=vc.read()
? ? ? ? i=1
? ? ? ? if (count1% time1 == 0):
? ? ? ? ? ? cv2.imwrite("video" + "%d.png" % (count1/1000), frame)
? ? ? ? ? ? logging.debug("save successfully")
? ? ? ? ? ? # print(count1/1000)
? ? ? ? ? ? pic(int(count1/1000))
? ? ? ? ? ? javaapi(int(count1/1000))
? ? ? ? # print(i)
? ? ? ? count1=count1+1
? ? vc.release()
except:
? ? print("讀取失敗")
? ? logging.error("the video can not be read")
? ? # return pic_list
#調(diào)用接口
# url = ''
# data = {'XXXX':'XXX'}
# headers = {'Connection':'close'}
# s=requests.session()
# r = s.post(url,data = data,headers = headers)
# # print(r.text.encode('utf-8'))
# pic()
# f={
#? ? "localUrl":(None,'1.jpg'),
#
# }
# r=s.post(url,files=f)
第二種可以用到jython但是版本過于老舊诺舔,最近在研究接口的東西發(fā)現(xiàn)py4j,他可以完美解決jython的問題伏尼,well,首先安裝(本人用windows7,anaconda)直接pip install py4j,就ok了考润,然后在anaconda中的share中找到py4j,以及目錄下的jar读处,導入到eclipse中糊治。一切ok
接下來就是二者的交互了,不過多贅述罚舱。
文章部分來源:https://blog.csdn.net/tryto21/article/details/79667107