易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : Python

python 获取本机ip

>>> from socket import socket, SOCK_DGRAM, AF_INET
>>> s = socket(AF_INET, SOCK_DGRAM)
>>> s.connect(('google.com', 0))
>>> s.getsockname()
('192.168.1.113', 43711) 
Linux:
import socket
import fcntl
import struct
def get_ip_address(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', ifname[:15])
)[20:24])
#get_ip_address('lo')环回地址
#get_ip_address('eth0')主机ip地址 
Windows:
import re,urllib2
from subprocess import Popen, PIPE
print "本机的私网IP地址为:" + re.search('\d+\.\d+\.\d+\.\d+',Popen('ipconfig', stdout=PIPE).stdout.read()).group(0)
print "本机的公网IP地址为:" + re.search('\d+\.\d+\.\d+\.\d+',urllib2.urlopen("http://www.whereismyip.com").read()).group(0)  ......

Python正则表达式

正则表达式是个魔鬼,也是个天使。在你没有掌握它之前,它是魔鬼,在你掌握它后,它是天使,但是,时
不时还是要跳出来,给你调皮捣蛋一番。


一个正则表达式就是由普通字符以及特殊字符组成的文字模式,该模式描述在查找文字主体时待
匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配,并能提取出匹配的结果。它是搜索、替换和解析复杂字符模式的
一种强大而标准的方法。

正则表达式有着总体规范的一套语法,但是到了各种语言中,又会有使用上的稍微不同,主要是表达式的细
微语法表达,还有语言的匹配类和方法的不同。

Python的所有类库都在re包中,和java
1.4以后的不同,String的各个方法,find和replace都不自做主张的去使用正则表达式,而是使用简单的字符串方式。这点我比较欣赏,有时
候只是做一些简单的替换,不要弄正则表达式这么麻烦,也让新手们摸不着北,替换两个字符就要去了解正则表达式这么夸张。

工具
   
Python有一个非常好的正则表达式辅助调试工具:Kodos。有Windows版本,提供了对正则表达式的方便的实时调试功能,建议学习正则表达式前
一定要下载:
&nbs ......

用Python直接写UTF 8文本文件

当我们这样建立文件时
f =
file('x1.txt', 'w')
f.write(u'中文')
f.colse()

接结果应该是类似
    f.write(u'中文')
UnicodeEncodeError: 'ascii'
codec can't encode characters in position 0-16: ordinal not in
range(128)
要直接写 utf-8 文件怎么办呢?
import codecs
f = codecs.open("pru_uni.txt", "w", "utf-8")
txt = unicode("campeón\n", "utf-8")
f.write(txt)
f.write(u'中文\n')
f.close()
......

python模块之codecs

python对多国语言的处理是支持的很好的,它可以处理现在任意编码的字符,这里深入的研究一下python对多种不同语言的处理。
    有一点需要清楚的是,当python要做编码转换的时候,会借助于内部的编码,转换过程是这样的:
        原有编码 -> 内部编码 ->
目的编码
   
python的内部是使用unicode来处理的,但是unicode的使用需要考虑的是它的编码格式有两种,一是UCS-2,它一共有65536个码
位,另一种是UCS-4,它有2147483648g个码位。对于这两种格式,python都是支持的,这个是在编译时通过--enable-
unicode=ucs2或--enable-unicode=ucs4来指定的。那么我们自己默认安装的python有的什么编码怎么来确定呢?有一个
办法,就是通过sys.maxunicode的值来判断:
import
 sys
print
 sys.maxunicode
    如果输出的值为65535,那么就是UCS-2,如果输出是1114111就是UCS-4编码。
我们要认识到一点:当一个字符串转换为内部编码后,它就不是str类型了!它是unicode类型:

=
 
"
风卷残云
"
print
 type(a)

=
& ......

python处理XML

基本上都是使用python来解析xml文件的。
比如我要将内容为
<?xml version="1.0" encoding="utf-8"?>
    <root>
        <book isbn="34909023">
            <author>
                dikatour
            </author>
        </book>
    </root>
写入到xmlstuff.xml文件中去。
其实也很简单,基本原理如下:
我使用xml的DOM方式,先在内存中创建一个空的DOM树,然后不断增加我要的节点,最后形成我想要的DOM,最后输出到文件中去。
1.我使用xml.dom.minidom这个module来创建xml文件
from xml.dom import minidom
2. 每个xml文件都是一个Document对象,代表着内存中的DOM树
doc = minidom.Document()
3.有了空的DOM树后,我们在上面添加根节点
rootNode = doc.createElement("root")
doc.appendChild(r ......

关于Python的列表append()返回None对象


在Learning Python 3rd 里第三部分练习题有道题:
1.c 编写for 循环,对于字符串S,返回一个新的列表,其中包含了字符串每个字符的ASCII码。
我的思路是:
for i in S:
    L = [ord(i) for i in S] #列表解析的思路
我的错误思路:
for i in S:
    L = L.append(ord(i))
提示空对象没有append属性( 'NoneType' object has no attribute 'append')
因为列表的append方法属原处修改列表,返回None。
那么第一次循环赋值之后L被赋了None对象,即出现提示。
书中代码是:
for i in S:
     L.append(ord(i))
然后交互输出显示L。
......
总记录数:695; 总页数:116; 每页6 条; 首页 上一页 [9] [10] [11] [12] 13 [14] [15] [16] [17] [18]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号