2016-02-28 128 views
1

python的新功能。Python字符串拆分

我試圖解析 「的fdisk - 」

Device  Boot  Start  End Sectors Size Id Type 
/dev/sda1 *   2048 206847 204800 100M 7 HPFS/NTFS/exFAT 
/dev/sda2   206848 254308949 254102102 121.2G 7 HPFS/NTFS/exFAT 
/dev/sda3  254310398 488396799 234086402 111.6G 5 Extended 
/dev/sda5  254310400 478828543 224518144 107.1G 83 Linux 
/dev/sda6  478830592 488396799 9566208 4.6G 82 Linux swap/Solaris 

的輸出我有這樣的代碼:

import os 

for line in os.popen('/sbin/fdisk -l').readlines(): 
    if line.find('/dev/') !=0: continue 
    columns = line.split() 
    print columns[0].split('/')[-1] 

    print columns[1] 

其中產生這樣的輸出:從

sda1 
* 
sda2 
206848 
sda3 
254310398 
sda5 
254310400 
sda6 
478830592 

除了我將在稍後分類的明顯格式問題,我如何阻止它識別啓動列上的Asterisk?

我知道我可以用AWK之類的東西來解決這個問題,以完全忽略啓動列,但是id想嘗試用Python來做到這一點,因爲我仍在學習。

回答

0

我似乎已經找到了答案使用 「re.split」

for line in os.popen('/sbin/fdisk -l').readlines(): 
if line.find('/dev/') !=0: continue 
columns = re.split("[, \-!?:\*]+", line) 
print columns[0] 
print columns[1] 

給出:

/dev/sda1 
2048 
/dev/sda2 
206848 
/dev/sda3 
254310398 
/dev/sda5 
254310400 
/dev/sda6 
478830592