python-3.x - 通过 Glob 获取所有虚拟机的路径
问题描述
当我尝试在我的代码中运行与 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)
它仍然产生空输出
解决方案
问题在于我让它在我需要的实际目录上方的目录中查找 .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 文件
推荐阅读
- ruby-on-rails - .each 遍历空集合 - Ruby on Rails
- javascript - 尝试使用 Promises 和 .then() 从 Firebase 获取 Image-Url
- javascript - 使用 Rails 将插件添加到 Webpack
- node.js - socket.io 中的延迟发射回调
- java - 线程“main”中的异常 java.util.NoSuchElementException 第一次试用
- javascript - Javascript XMLHttpRequest 对预检错误的响应
- typescript - TypeScript 没有标记不兼容的泛型
- react-admin - react-admin ImageField 高度/宽度
- python - numpy 识别的特殊方法的文档位置
- reactjs - 如何在phoenix api中处理来自react frontedn的参数?