2012-10-18 32 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,謝謝 –