2012年10月26日 星期五

[python] list與dictionary的結合

dictionary能儲存資料以及索引
對整理資料能夠有比較好的架構
但資料卻不是有序的序列
於是可藉由list來幫忙做排序

這篇介紹list中包dictionary,及dictionary中包list的方法

1). list中包dictionary
dict1={key:a}
dict2={key:b}
list=[dict1,dict2]
or
list=[]
list.append(dict1)

2). dictionary中包list
dict={}
dict[key]=list()
dict[key].append(value)

2.1). 新增資料前先檢查有沒有key
if key not in dict:
    dict[key] = list()
dict[key].append(value)



※ref:http://lucaswei.blogspot.tw/2012/05/pythondictxlist.html

[python] 外部指令

python需引用外部指令時,可用以下程式碼

import commands

command_git='cd %s; git log' %(codebase)
log=commands.getoutput(command_git)

[python] iterator與enumerate

enumerate(iterable, start=0)
回傳以 iterable 與連續整數配對的 enumerate 物件, start 為整數的起始值,預設為 0

Ex1:
d = ['Spring', 'Summer', 'Fall', 'Winter']
for i, j in enumerate(d, 1):
    print(i, j)

[output]
1 Spring
2 Summer
3 Fall
4 Winter

Ex2:
for i, n in enumerate([1, 3, 5]):
    print i, n

[output]
0 1
1 3
2 5

2012年10月11日 星期四

[python] 使用xlwt輸出excel檔

1). 下載xlwt
http://pypi.python.org/pypi/xlwt

2). 安裝xlwt
$ cd [下載的xlwt目錄]
$ sudo python setup.py install

3). 輸出excel檔
#!/usr/bin/python
import xlwt  #要先安裝xlwt

file = xlwt.Workbook()  #Work的W是大寫
#table = file.add_sheet('sheet name')  #新建sheet
table = file.add_sheet('sheet name',cell_overwrite_ok=True)  #對同個儲存格可複寫的sheet
table.write(0,0,'test')  #對某個儲存格寫入資料

file.save('demo.xls')  #儲存為excel


※[python] 安裝套件方法

2012年10月9日 星期二

[python] 安裝套件方法

在Python中安裝額外套件
先到官網下載
進入到該目錄
sudo python setup.py install

2012年9月21日 星期五

[Linux][ShellScript] grep應用


問題
一個txt內存有檔案路徑列表,對此txt中每一檔案路徑做關鍵字查詢

.
├── file.txt
├── a.txt
├── b.txt
├── c.txt
└── test.sh


解法
$ cat file.txt |xargs grep "keyword"
出來的結果是出現有搜尋到關鍵字的檔名,及關鍵字
path/a.txt:keyword
path/b.txt:keyword

只顯示又搜尋到關鍵字的檔名
$ cat file.txt |xargs grep "keyword" |awk -F: '{print $1}'

[Linux][ShellScript] awk - 取得token, 以符號切割

Data=123:aa bbb c

1). 擷取某個token
Ex1: 擷取第2個token
$ awk '{print $2}' Data

Ex2: 擷取第2.3個token
$ awk '{print $2,$3}' Data

2). 以符號切割,並取冒號之後的字串
$ awk -F: '{print $2} Data'

2012年8月15日 星期三

[Linux][ShellScript] 輸出變數

變數要從母script傳到子script
母script=1.sh
子script=2.sh

1). 在母script export需要的變數
name=John
export name
./2sh

2). 在子script就可以直接用了

[Linux][ShellScript] Shell Script分隔變數

Shell Script

1). 宣告變數:name
name=John

2). 呼叫變數:$name or ${name}
echo $name
echo ${name}

※若變數一起打,沒有用{}區隔,容易有混淆
(X) echo $name_$number  →僅會顯示number
(O) echo ${name}_${number}