【问题标题】:Get Path of all VMs through Glob通过 Glob 获取所有虚拟机的路径
【发布时间】:2019-07-03 15:39:24
【问题描述】:

当我尝试在我的代码中运行与 Windows 框中 VM 的默认位置有关的基本函数时遇到问题。这些 VM 存储为单个文件。 出于某种原因,与 glob 交互的目录的循环没有找到任何文件。

我必须在路径的开头和路径的结尾使用 glob,以便可以在我的部门周围使用此脚本。

我研究过 os.walk() 和 os.listdir();两者都失败了,因为我编写它的方式,我收到错误TypeError: expected str, bytes or os.PathLike object, not list

我需要一个虚拟机列表,以便我可以编写一个脚本,通过 vix API 克隆该列表中的所有虚拟机。

def getVMs():

    vmloc = glob.glob('**\\Documents\\Virtual Machines\\*.vmdk', recursive=True)

    for f in vmloc:

        print(f)

问题是它打印一个空输出,我不知道为什么。任何帮助将不胜感激。

编辑: 我还尝试通过 os.path 创建路径来完成路径,并创建了 VM 文件夹的完整路径:

def getVMs():
    path = os.path.join('..','C:','\\','Users',os.getlogin(),'Documents','Virtual Machines\\',)
    for vmloc in glob.glob(path +'**.vmdk', recursive=True):

        print(vmloc)

它仍然产生一个空输出

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    问题在于我让它在我需要的实际目录上方的目录中查找 .vmdk 文件。

        path = os.path.join('..','C:','\\','Users',os.getlogin(),'Documents','Virtual Machines\\',)
        path1 = glob.glob(path + '**\\' + '**.vmdk' , recursive=True )
        for vms in path1:
            print(vms)
    

    之后我能够找到所有的 VMDK 文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 2014-12-24
      • 2011-08-30
      • 1970-01-01
      • 2015-03-06
      • 2013-11-17
      相关资源
      最近更新 更多