【问题标题】:Interpret path with * in Windows with Python在 Windows 中使用 Python 解释带 * 的路径
【发布时间】:2015-08-01 20:56:52
【问题描述】:

我正在尝试根据包含* 字符的路径(似乎类似于正则表达式)在 Windows 上找到完整的真实路径。

例如,如果我在 Windows 控制台中这样做:

cd C:\\Windows\\Program Files\\MySWv1*\\bin

上述路径扩展为:

C:\\Windows\\Program Files\\MySWv1.90\\bin

然后cd命令执行成功。

但是,如果在 Python (2.7) 中,我尝试执行以下操作:

import os
my_path = 'C:\\Windows\\Program Files\\MySWv1*\\bin'
os.path.exists(my_path)

这将返回False

我怎样才能让上面的脚本返回True

【问题讨论】:

标签: python windows path


【解决方案1】:

我找到了解决方案here。它基于glob 模块:

import os
import glob
my_path = glob.glob('C:\\Windows\\Program Files\\MySWv1*\\bin')[0]
os.path.exists(my_path)

实际上,glob.glob 解释路径并将任何通配符(如*)替换为一个或多个字符串,从而生成匹配它们的路径列表 .

这意味着,在生产代码中,您应该始终考虑glob.glob 生成多个路径的可能性,并在需要时采取一些措施来管理此规则。

【讨论】:

  • glob 的结果是一个列表,如果列表不为空,则项目肯定存在当时。在多线程操作系统中,不能保证它们仍然存在。最好尝试操作并处理异常。
猜你喜欢
  • 2012-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
相关资源
最近更新 更多