从零开始学Python

第十二章:通信,web

1.浅谈通信

毫无疑问要用到socket(套接字)由于此章节和java异曲同工,就不再繁复地赘述,简单地运用几个例子来说明。

一个小型服务器和一个小型客户机:

服务器:

>>import socket

>>s=socket.socket()

>>host=socket.gethostname()

>>port=1234

>>s.bind((host,port))

>>s.listen(5)

>>while True:

c,addr=s.receive()

print(from:+addr)

c.send(hello)

c.close()

客户端:

>>import socket

>>s=socket.socket()

>>host=socket.gethostname()

>>port=1234

>>s.connect((host,port))

>>print(s.recv(1024))

urllib.request打开远程文件

>>from urllib.request import urlopen

>>s=urlopen(http://www.baidu.com)

获取远程文件

>>urlretrieve(http://www.baidu.com,文件路径+文件名)

保存网址为文件 

2.Python和万维网

       简答的屏幕抓取程序

       >>from urllib.request import urlopen

        >>import re

>>p=re.compile(<h3><a .*?><a .*? href=(.*?)>(,*?)</a>)

>>text=urlopen(http://baidu.com/).read()

>>for url,name in p.findall(text)

print(name,url)

        创建CGI网页

         第一步:准备网络服务器

      第二步:加入下列代码

 #!/usr/bin/env python

         简单的脚本:

 #!/usr/bin/env python

  print(Content-type:text/html)

                print(hello)

如果这个文件保存为.cgi格式,就可以允许了。

         用cgi调试

 #!/usr/bin/env python

                import cgitb

print(Content-type:text/html)

print(1/0)

         用cgi获取值

 #!/usr/bin/env python

                import cgi

from=cgi.fieldStorage()

name=from.getvalue(name,world)

print(Content-type:text/plain)

print(name)

        简单的表单:

 #!/usr/bin/env python

                import cgi

from=cgi.fieldStorage()

name=from.getvalue(name,world)

print(Content-type:text/plain)

<html>

<head>

</head>

<body>

<from action=hello.cgi>

<input type=text name=name>

<input type=submit>

</from>

</body>

</html>

print(name)

 

3.Python的扩展

        由于本人比较熟悉java,因此只扩展到java,其余的暂时不做说明。

扩展到java可以用Jython,安装完成后可以将.class文件放到Jythonjava CLASSPATH中的某处或者当前目录中:

        $ CLASSPATH=Demo.class jython

再将其作为模块导入

>>import Demo

>>test=Demo()

>>test.greet()

输出:hello world

eclipse中点帮助-->安装软件,再填写软件名和网址,等待安装插件就可以了。安装成功之后在eclipse上配置python,新建PyDev项目和包就可以了。 

4.程序打包

        简单的distutils脚本

>>from distutils import setup

>>setup(name=hello,version=1.0,author=zq)

python setup.py build创建hello.py的副本,运行python setup.py install安装模块。

打包:sdist命令

先运行python setup.py sdist,再运行include 1.txt就在MANIFEST.in文件清单下包含了1.txt。可以用py2exe来创建.exe执行程序。

5.日志记录

     在程序的开头导入logging模块 

        >>import logging

>>logging.basicConfig(level=logging.INFO,filename=mylog.log)

>>logging.info(start)

>>logging(计算:)

>>print(1/0)

>>logging(OK~)

程序会在异常的时候中断。         

<!--EndFragment-->

你可能感兴趣的:(python)