2012-10-18 33 views
0
import subprocess 

def volumeCheck(volume_name): 
    """This function will check volume name is mounted or not. 
    """ 
volume_name = raw_input('Enter volume name:') 
volumeCheck(volume_name) 

p = subprocess.Popen(['df', '-h'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
p1, err = p.communicate() 
pattern = p1 

new_vol = '/VolumeData/' '+ volume_name +' 

if pattern.find(new_vol) != -1 : 

    print 'volume mounted' 

else: 
    print 'volume not mounted' 

new_vol = '/ VolumeData /' '+ VOLUME_NAME +'我觉得这是不对的,但我怎么能做到这一点..?字符串匹配不工作

我喜欢搜索\ volumeData \ volume_name。

[email protected]:/# df -h 
Filesystem   Size Used Avail Use% Mounted on 
rootfs    938M 473M 418M 54%/
/dev/md0    938M 473M 418M 54%/
none     250M 4.9M 245M 2% /dev 
/dev/md2    9.7M 1.2M 8.0M 13% /usr/config 
/dev/md7    961M 18M 895M 2% /downloads 
tmpfs     250M 7.9M 242M 4% /var/volatile 
tmpfs     250M  0 250M 0% /dev/shm 
tmpfs     250M  0 250M 0% /media/ram 
/dev/mapper/vg9-lv9 1016M 65M 901M 7% /VolumeData/sp 
/dev/mapper/vg10-lv10 
        1016M 65M 901M 7% /VolumeData/cp 
[email protected]:/# 

感谢adavnce

+0

它现在工作的很好:)希望这不是优化becoz是一个在Python中的初学者...任何优化帮助我更多谢谢oyss –

+0

如果你设法回答你自己的问题,这是很好的礼仪在这里写下来。这样人们会知道你不需要一个答案了,也许你的答案将有用的其他人 – Sheena

回答

1

你到底是要干什么?如果我理解正确,我可能会尝试os.path.join,如:

new_vol = os.path.join('/','VolumeData', volume_name) 

而且,因为你没有实际使用的find的结果,你可能要考虑:

if new_vol in p1: 

代替。

+0

我需要检查此目录(/ VolumeData /)包含我的输入volume_name挂载或不 –

+0

是的这是r8,谢谢 –