author:alex xiang(x86)
date: 03/19/2009
工作上的需要,需要寫一些python指令碼,順便把學習過程中的一些心得記下來以備檢視。
1. python 三元操作
類似於c的x=a?:0:1,python的方式是:x=a and 0 or 1
2. 模組間共享變數
三個模組a,b,c,其中a和b都要用到c的變數
a: import c
from b import *
print c.x
b: import c
c.x = 1
c: x = 0
3. 十六進製制數的顯示
乙個十六進製制數要按字串的方式顯示,可以這樣:
x=0x100
'0x%x' %x
'0x100'
4. 正規表示式
得到記憶體大小:
import re
import os
lines = os.popen("free").readlines()
p=re.compile(".*mem:/s+(/d+)/s+.*", re.s)
m = p.match(str(lines))
if(m):
print "total=" + m.group(1) + "/n"
5. 數字和字串之間轉換
a="0x100"
b=int(a,16) # 第二個引數表示16進製制,預設是十進位制
6.可變引數
一顆星類似於c的可變引數
def test1(a, *b):
print a
print "length of b is: %d " % len(b)
print b
print b[1]
test1(1,2,3,4)的輸出結果:
1 length of b is: 3
(2, 3, 4)
3 兩顆星表示引數是乙個字典:
def test2(**a):
for i in a:
print i + " = " + a[i]
test2(a="1", b="2")的輸出結果是:
a = 1
b = 2
7. 正規表示式,匹配多處結果
看看這個例子,每處匹配有兩個項,注意re.s使得可以匹配多行(忽略/n)
>>> p=re.compile("a(/d+)b(/d+)c", re.s)
>>> result = p.findall("a1b1c,a2b2c/na3b3c/na4b4c")
>>> result
[('1', '1'), ('2', '2'), ('3', '3'), ('4', '4')]
8. 生成掩碼
有乙個列表,比如[1,3,4,5],生成乙個掩碼,如果某個數在列表裡,則掩碼相應位置1
mask = 0x0
for i in range(16):
if str(i) in a_list:
mask |= 1<
mask_str = "0x%x" % mask
9. 執行外部命令
用subprocess挺好
import subprocess
p = subprocess.popen(cmd_str, shell=true, stdout=subprocess.pipe, stdin=subprocess.pipe, stderr=subprocess.pipe)
stdoutdata, stderrdata = p.communicate()
if p.returncode != 0:
print "failed。/n")
另乙個例子,ping乙個位址,用subprocess.call
def dl_ping(host):
ret = subprocess.call("ping -c 1 %s" % host, shell=true, stdout=open('/dev/null', 'w'), stderr=subprocess.stdout)
if ret == 0:
print host + " is alive/n"
return true
else:
print host + " did not respond/n"
return false
Python學習日誌(一)
未解決問題 如何將city area的值輸出出來?def city area area up,area down,area height return 1 2 area up area down area height city area 1,2,3 為什麼會報錯?def print user in...
學習筆記 python 日誌logging(一)
logging 在原始碼中有三個檔案,結構如下 config.py handlers.py init py int.py中實現了基礎功能,主要的邏輯就在這個檔案中 handlers.py 是一些handlers用起來很方便的.config.py 是對配置做處理的方法.1.呼叫關係 這張圖簡單明瞭,盜...
python學習日誌
1 python中range xrange 和np.arange 區別 range 多用於迴圈,返回乙個range物件,若想要返回乙個list則前面加上list轉換 arange 是numpy中的函式,np.range 返回乙個array型別的物件,可以使用小數步長 xrange 返回xrange ...