⑴ 如何配置OPENCV的python接口
从已编译好的Opencv安装
1.确保你的电脑已经安装下面的python包:numpy和matplotlib。使用python2.7版本哦。其实,你要是用Anaconda的话,这步略过吧
2.安装包到默认位置(多余了吧,好像没用,进入下一步)
3.打开Python IDLE,imort numpy。确保numpy已装好。(装了Anconda的童靴略过吧)
4.下载OpenCV。(我前面给出官网连接,去下吧,记得解压哈)
5.解压后,去这个文件夹:opencv/build/python/2.7
6.拷贝cv2.pyd到你的Anaconda目录下/lib/site-packages.
7.打开Anaconda的DOS框,输入python,接着
import cv2
print cv2.__version__
如果可以打印opencv的版本好,并且没报错,那么恭喜你安装成功。开始基于opencv的python接口来学习opencv吧。
⑵ python 调用接口
python和C++都能从多个父类继承,没有接口这么一说啊。
⑶ python,requests库做接口自动化时,传参格式是json,怎么传图片
json传图片一般两种方式:
将图片转换为base64,传base64
先通过另一个上传接口上传图片 ,返回图片的URL,然后在json中填入图片的URL。
⑷ python支持接口编程吗
python支持接口编程。
⑸ 如何实现python接口,的https
今天写代码时碰到一个问题,花了几个小时的时间google,基本上把google搜索的前几页内容都一一看了下,问题最终是解决了,不过过程挺曲折的,所以把这个过程记下来以便以后参考之。
原因是以下一段代码引起的:
?
12
import urllib2urllib2.urlopen('https://xxxx.com')
本来这段代码很简单的,就是请求一个https的连接,可是报以下错误:
?
1
urllib2.URLError:
第一反应是https证书问题产生的,如是以'python ssl' 为关键字google后,看到大家都在用'requests'这个python组件做http请求客户端,就像java里面的httpclient组件一样,如果安装完request包后,改成如下代码:
?
12
import requestsrequests.get('https://xxx.com')
还是报以下错误:
?
1
requests.exceptions.SSLError:
[Errno 1] _ssl.c:504: error:140773E8:SSL routines:SSL23_GET_SERVER_HELLO:reason(1000)
可以看出来,用requests和urllib2报的错误信息是一样,可见它们都是基于相同的底层api操作的,比如基于TLS的socket连接。到这里的时候我怀疑这个问题不是python代码写的有问题,可能是操作系统级别的设置错了。如下直接在shell客户端运行如下测试脚本:
?
1
wget
https://xxx.com
果然报如下错误:
?
12
OpenSSL:
error:140773E8:SSL routines:SSL23_GET_SERVER_HELLO:reason(1000)无法建立
SSL 连接。
到这里我怀疑是openssl安装有问题,更新到最新版本后还是一样,然后在浏览器里访问是可以的,所以应该不是openssl有问题。继续google.......,就发现有人也遇到过这种问题,说是连接SSL服务器时SSL的版本不对,如是用如下代码测试不同的SSL版本,看是不是这个问题:
?
12345
curl
-1 https://xxx.com curl
-2 https://xxx.com curl
-3 https://xxx.com
分别用上面的三句脚本去测试连接情况,发现第三种可以连接正常(-1,2,3,数字分别代码tlsv1,sslv2,sslv3三个不同的SSL版本)。说明这个https连接所在的服务器是基于SSLV3版本的。找到的问题,就很容易知道怎么改写python代码了。
?
123456789
class MyAdapter(HTTPAdapter): def init_poolmanager(self,
connections, maxsize): self.poolmanager= PoolManager(num_pools=connections, maxsize=maxsize, ssl_version=ssl.PROTOCOL_SSLv3) s= requests.Session()s.mount('https://',
MyAdapter())#所有的https连接都用ssl.PROTOCOL_SSLV3去连接s.get('https://xxx.com')
urllib2实现:
?#
custom HTTPS opener, banner's oracle 10g server supports SSLv3 onlyimport httplib,
ssl, urllib2, socketclass HTTPSConnectionV3(httplib.HTTPSConnection): def __init__(self,*args,**kwargs): httplib.HTTPSConnection.__init__(self,*args,**kwargs) def connect(self): sock= socket.create_connection((self.host,self.port),self.timeout) if self._tunnel_host: self.sock= sock self._tunnel() try: self.sock= ssl.wrap_socket(sock,self.key_file,self.cert_file,
ssl_version=ssl.PROTOCOL_SSLv3) except ssl.SSLError,
e: print("Trying
SSLv3.") self.sock= ssl.wrap_socket(sock,self.key_file,self.cert_file,
ssl_version=ssl.PROTOCOL_SSLv23) class HTTPSHandlerV3(urllib2.HTTPSHandler): def https_open(self,
req): return self.do_open(HTTPSConnectionV3,
req)#
install openerurllib2.install_opener(urllib2.build_opener(HTTPSHandlerV3())) if __name__== "__main__": r= urllib2.urlopen("htANPROD1/bwskfcls.P_GetCrse") print(r.read())
可以看到这两种方案的原理都是一样,就是自定义连接处理器,改变连接时ssl的版本号。
⑹ python抓取接口内容用什么方法
你的问题事实上包含几部分:
将 pdf 转化为纯文本格式
抽取其中部分内容
格式化写入到 excel 中
转换 PDF 有很多库可以完成,如下是通过 pdfminer 的示例:
from cStringIO import StringIO
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
def convert_pdf_2_text(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
device = TextConverter(rsrcmgr, retstr, codec='utf-8', laparams=LAParams())
interpreter = PDFPageInterpreter(rsrcmgr, device)
with open(path, 'rb') as fp:
for page in PDFPage.get_pages(fp, set()):
interpreter.process_page(page)
text = retstr.getvalue()
device.close()
retstr.close()
return text
需要指出的是,pdfminer 不但可以将 PDF 转换为 text 文本,还可以转换为 HTML 等带有标签的文本。上面只是最简单的示例,如果每页有很独特的标志,你还可以按页单独处理。
⑺ api接口和python库的区别是什么
API 接口属于一种操作系统或程序接口,而后两者都属于直接用户接口。 有时公司会将 API 作为其公共开放系统。也就是说,公司制定自己的系统接口标准,当需要执行系统整合、自定义和程序应用等操作时,公司所有成员都可以通过该接口标准调用源代码,该接口标准被称之为开放式 API。
⑻ Python中怎么写接口啊,我在网上一直找不到
什么是接口 ?
接口只是定义了一些方法,而没有去实现,多用于程序设计时,只是设计需要有什么样的功能,但是并没有实现任何功能,这些功能需要被另一个类(B)继承后,由 类B去实现其中的某个功能或全部功能。
个人的理解,多用于协作开发时,有不同的人在不同的类中实现接口中的各个方法。
在python中接口由抽象类和抽象方法去实现,接口是不能被实例化的,只能被别的类继承去实现相应的功能。
个人觉得接口在python中并没有那么重要,因为如果要继承接口,需要把其中的每个方法全部实现,否则会报编译错误,还不如直接定义一个class,其中的方法实现全部为pass,让子类重写这些函数。
当然如果有强制要求,必须所有的实现类都必须按照接口中的定义写的话,就必须要用接口。
方法一:用抽象类和抽象函数实现方法
[python]view plain
#抽象类加抽象方法就等于面向对象编程中的接口
fromabcimportABCMeta,abstractmethod
classinterface(object):
__metaclass__=ABCMeta#指定这是一个抽象类
@abstractmethod#抽象方法
defLee(self):
pass
defMarlon(self):
pass
classRelalizeInterfaceLee(interface):#必须实现interface中的所有函数,否则会编译错误
def__init__(self):
print'这是接口interface的实现'
defLee(self):
print'实现Lee功能'
defMarlon(self):
pass
classRelalizeInterfaceMarlon(interface):#必须实现interface中的所有函数,否则会编译错误
def__init__(self):
print'这是接口interface的实现'
defLee(self):
pass
defMarlon(self):
print"实现Marlon功能"
[python]view plain
classinterface(object):#假设这就是一个接口,接口名可以随意定义,所有的子类不需要实现在这个类中的函数
defLee(self):,
pass
defMarlon(self):
pass
classRealaize_interface(interface):
def__init__(self):
pass
defLee(self):
print"实现接口中的Lee函数"
classRealaize_interface2(interface):
def__init__(self):
pass
defMarlon(self):
print"实现接口中的Marlon函数"
obj=Realaize_interface()
obj.Lee()
obj=Realaize_interface2()
obj.Marlon()
⑼ python如何写上一接口
# -*- coding:utf-8 -*-# Author Caoxlimport sys account_file='E:\user.txt'locked_file='E:\locked.txt' def deny_account(username): print('您的用户已被锁定') with file(locked_file,'a') as deny_f: deny_f.write('\n'+username) def main(): retry_count=0 retry_limit=3 #循环次数 while retry_count<retry_limit: #用户最多重复登陆3次 username=raw_input('请输入您的用户名:') #引导用户输入用户名 with file(locked_file,'r') as lock_f: #采用with打开方式,将locked_file赋值lock_f,防止忘记f.close()关闭文件 for line in lock_f.readlines(): #循环遍历每一行的内容 if len(line)==0: #对每一行内容进行处理 continue if username == line.strip(): #利用.strip这个函数去掉换行符,来对username进行匹配。 sys.exit('用户已经被锁定!') if len(username)==0: #提示用户登录时,用户名不能为空! print('用户名不能为空,请重新输入') continue password= raw_input('请输入您的密码:') #引导用户输入密码 with file(account_file,'r') as account_f: flag= False for line in account_f.readlines(): user,pawd=line.strip().split() #将用户名和对应密码进行处理 if username==user and password==pawd: #判断用户名和密码 print('success!') flag=True break #退出for循环 if flag==False: #避免用户在三次输入后,依然提示重新输入。 if retry_count<2: print('您输入的用户名或密码有误,请重新输入!') retry_count+=1 else: print('欢迎用户登陆成功!!') break # 加标志位是为了用户能够成功推出整个循环! deny_account(username) #对应上面的def函数把锁定账号加入文档中去 if __name__ == '__main__': main()
⑽ python 3.x什么框架写后台接口最合适
django, tornado都可以