【问题标题】:String matching in python not workingpython中的字符串匹配不起作用
【发布时间】:2012-10-18 12:25:36
【问题描述】:
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 。

root@sr-query:/# 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
root@sr-query:/# 

感谢您的支持

【问题讨论】:

  • 它现在工作正常 :) 希望这不是优化的,因为我是 python 的初学者......任何优化都对我有帮助,谢谢 oyss
  • 如果您已经设法回答了自己的问题,将其写在此处是一种很好的礼仪。这样人们就会知道你不再需要答案,也许你的答案对其他人有用

标签: python python-3.x python-2.7


【解决方案1】:

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

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

另外,由于您实际上并未使用find 的结果,您可能需要考虑:

if new_vol in p1:

改为。

【讨论】:

  • 我需要检查这个目录(/VolumeData/)是否包含我输入的volume_name挂载...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
  • 2013-08-10
相关资源
最近更新 更多