2016-02-28 129 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