Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15497569
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: Python/Ruby

2008-12-15 22:05:27

注意,缩进代表了语句隶属于哪一个单元
1.print的正确位置
    while True:
        try:
            text = fd.next()
        except:
            break
        print text, # 逗号用来忽略多生成出来的回车\n符号,这里print在while True中生效,每次while True循环都会调用print
2.print的错误位置
    while True:
        try:
            text = fd.next()
        except:
            break
    print text, # 表示该print语句和while True在同一级别,所以当while True:执行完成之后才会执行print语句

string.atoi(str[str.index(' = ')+3:], 16)
string.atoi('0x12'], 16)
string.atoi('10')


>>> struct.pack( '=ii', 123, 456)
'{\x00\x00\x00\xc8\x01\x00\x00'
>>> struct.unpack('=ii','{\x00\x00\x00\xc8\x01\x00\x00')
(123, 456)
可以使用
>>> help(struct)
看到,struct不但可以指定endian,还可以指定alignment,进而实现linux里的__attribute__ ((packed))的功能[luther.gliethttp]
>>> struct.calcsize('cBi')//可以进行存储空间优化
8
>>> struct.calcsize('=cBi') //表示使用__attribute__ ((packed)存储
6
>>> struct.pack('cBi', 'a', 8, 10)
'a\x08\x00\x00\n\x00\x00\x00'
>>> struct.pack('=cBi', 'a', 8, 10)
'a\x08\n\x00\x00\x00'
>>> struct.pack('=cbi4s', 'a', 8, 10, 'bcde') //s字符串前面必须加上字符串长度,这里为4表示是4个字节的字符串
'a\x08\n\x00\x00\x00bcde'
>>> struct.unpack('=cbi4s', 'a\x08\n\x00\x00\x00bcde')
('a', 8, 10, 'bcde')

import os

os.system('ls -l') //执行系统调用ls -l命令
os.stat('c:/glx.txt')
help(os.stat)
filename="c:/glx.txt"
fd=open(filename)
fd.tell()
print fd.readline()
print fd.next() //读取下一行

fd.name
fd.fileno()
help(file)
fd.seek(0)
help(file.seek)
os.fstat(fd.fileno())
os.stat(filename)
fd.seek(-128,2)//这里-2表示从文件尾开始,-128表示向后移动128字节
fd.seek(-2,1)//这里1表示从当前位置开始,-2表示向后移动2字节
fd.seek(2,0)//这里0表示从文件头开始,2表示向前移动2字节

outfilename='c:/glx.out.c'
outfd=open(outfilename,'w')//打开后清除文件中内容
outfd.write('luther.gliethttp')//写内容
outfd.flush()//将缓存着的内容同步到硬盘上
print file(outfilename).read()//显示文件中的内容
outfd.close()
outfd=open(outfilename,'a')
outfd.write('line 2')
outfd.close()

os.path.join("c:\\music\\ap\\", "mahadeva.mp3")
os.path.join("c:\\music\\ap", "mahadeva.mp3")
os.path.expanduser("~")
os.path.split("c:\\music\\ap\\mahadeva.mp3")
(filepath, filename) = os.path.split("c:\\music\\ap\\mahadeva.mp3")
>>> filepath
'c:\\music\\ap'
>>> filename
'mahadeva.mp3'
(shortname, extension) = os.path.splitext(filename)
>>> shortname
'mahadeva'
>>> extension
'.mp3'
dirname = "c:\"
os.listdir(dirname)
使用glob通配符列出目录
import glob
glob.glob('c:\\music\\_singles\\*.mp3') //列出所有mp3文件
glob.glob('c:\\music\\_singles\\s*.mp3') //列出所有s开头的mp3文件

[f for f in os.listdir(dirname) if os.path.isfile(os.path.join(dirname, f))]
[f for f in os.listdir(dirname) if os.path.isdir(os.path.join(dirname, f))]

根据操作系统的缺省值对大小写进行标准化处理。normcase 是一个有用的函数,用于对大小写不敏感操作系统的一个补充。这种操作系统认为 mahadeva.mp3 和 mahadeva.MP3 是同一个文件名。例如,在 Windows 和 Mac OS 下,normcase 将把整个文件名转换为小写字母;而在 UNIX 兼容的系统下,它将返回未作修改的文件名。os.path.normcase(f)


import re //导入正则表达式库
s = '100 BROAD ROAD APT. 3'
>>> re.sub(r'\bROAD$', 'RD.', s)
'100 BROAD ROAD APT. 3'

import sys,os
>>> os.path.abspath('.ssh/../foo/')
/home/you/foo
os.getcwd() 返回当前的工作路径
os.chdir('/') 改变当前工作路径
path = os.getcwd()
sys.path.append(path) //将这个目录添加到 Python 库搜索路径中,你稍后动态导入单元测试模块时,Python 就能找到它们了。如果 path 就是正在运行代码的存储目录,你
就不需要这样做了,因为 Python 总会查找这个目录。


sys = __import__('sys')
os = __import__('os')
re = __import__('re')
内建 __import__ 函数与 import 语句的既定目标相同,但它是一个真正的函数,
并接受一个字符串参数。
变量 sys 现在是 sys 模块,和 import sys 的结果完全相同。变量 os 现在是一
个 os 模块,等等。
因此 __import__ 导入一个模块,但是是通过一个字符串参数来做到的。依此处
讲,你用以导入的仅仅是一个硬编码性的字符串,但它可以是一个变量,或
者一个函数调用的结果。并且你指向模块的变量也不必与模块名匹配。你可
以导入一系列模块并把它们指派给一个列表。

map(function, sequence[, sequence, ...]) -> list
map函数就是对后面的所有参数执行function函数,
比如:
moduleNames = ['sys', 'os', 're', 'unittest']
>>> moduleNames
['sys', 'os', 're', 'unittest']
modules = map(__import__, moduleNames)
>>> modules
[,
,
,
]
>>> modules[0].version
'2.2.2 (#37, Nov 26 2002, 10:24:37) [MSC 32 bit (Intel)]'
>>> import sys
>>> sys.version
'2.2.2 (#37, Nov 26 2002, 10:24:37) [MSC 32 bit (Intel)]'
所以变量modules[0]就是imporr进来的sys





http://hi.baidu.com/arislando/blog/item/ecafa551edf58f65853524b3.html

#Python字符串操作
'''1.复制字符串'''
#strcpy(sStr1,sStr2)
sStr1 = 'strcpy'
sStr2 = sStr1
sStr1 = 'strcpy2'
print sStr2
'''2.连接字符串'''
#strcat(sStr1,sStr2)
sStr1 = 'strcat'
sStr2 = 'append'
sStr1 += sStr2
print sStr1
'''3.查找字符'''
#strchr(sStr1,sStr2)
sStr1 = 'strchr'
sStr2 = 'r'
nPos = sStr1.index(sStr2)
print nPos
'''4.比较字符串'''
#strcmp(sStr1,sStr2)
sStr1 = 'strchr'
sStr2 = 'strch'
print cmp(sStr1,sStr2)
'''5.扫描字符串是否包含指定的字符'''
#strspn(sStr1,sStr2)
sStr1 = '12345678'
sStr2 = '456'
#sStr1 and chars both in sStr1 and sStr2
print len(sStr1 and sStr2)
'''6.字符串长度'''
#strlen(sStr1)
sStr1 = 'strlen'
print len(sStr1)
'''7.将字符串中的小写字符转换为大写字符'''
#strlwr(sStr1)
sStr1 = 'JCstrlwr'
sStr1 = sStr1.upper()
print sStr1
'''8.追加指定长度的字符串'''
#strncat(sStr1,sStr2,n)
sStr1 = '12345'
sStr2 = 'abcdef'
n = 3
sStr1 += sStr2[0:n]
print sStr1
'''9.字符串指定长度比较'''
#strncmp(sStr1,sStr2,n)
sStr1 = '12345'
sStr2 = '123bc'
n = 3
print cmp(sStr1[0:n],sStr2[0:n])
'''10.复制指定长度的字符'''
#strncpy(sStr1,sStr2,n)
sStr1 = ''
sStr2 = '12345'
n = 3
sStr1 = sStr2[0:n]
print sStr1
'''11.字符串比较,不区分大小写'''
#stricmp(sStr1,sStr2)
sStr1 = 'abcefg'
sStr2 = 'ABCEFG'
print cmp(sStr1.upper(),sStr2.upper())
'''12.将字符串前n个字符替换为指定的字符'''
#strnset(sStr1,ch,n)
sStr1 = '12345'
ch = 'r'
n = 3
sStr1 = n * ch + sStr1[3:]
print sStr1
'''13.扫描字符串'''
#strpbrk(sStr1,sStr2)
sStr1 = 'cekjgdklab'
sStr2 = 'gka'
nPos = -1
for c in sStr1:
    if c in sStr2:
         nPos = sStr1.index(c)
        break
print nPos

'''14.翻转字符串'''
#strrev(sStr1)
sStr1 = 'abcdefg'
sStr1 = sStr1[::-1]
print sStr1
'''15.查找字符串'''
#strstr(sStr1,sStr2)
sStr1 = 'abcdefg'
sStr2 = 'cde'
print sStr1.find(sStr2)
'''16.分割字符串'''
#strtok(sStr1,sStr2)
sStr1 = 'ab,cde,fgh,ijk'
sStr2 = ','
sStr1 = sStr1[sStr1.find(sStr2) + 1:]
print sStr1



x代表数组中的元素,i代表位置
a) append(x) 把元素x添加到数组的尾部
b) insert(i,x) 把元素x 插入到位置i
c) remove(x) 删除第一个元素x
d) pop(i) 删除第i个元素,并返回这个元素。若调用pop()则删除最后一个元素
e) index(x) 返回数组中第一个值为x的位置。如果没有匹配的元素会抛出一个错误
f) count(x) 返回x在数组中出现的次数
g) sort() 对数组中的元素进行排序
h) reverse() 对数组中的元素用倒序排序


阅读(1718) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~