【问题标题】:expand shell path expression in python在python中展开shell路径表达式
【发布时间】:2012-02-15 06:42:00
【问题描述】:
path = 'foo/{bar1,bar2}'

如何像 bash shell 那样扩展为 ['foo/bar1', 'foo/bar2'] ?我已经尝试过 glob,os.path.realpath,但我也没有在shutil 中看到任何内容。

【问题讨论】:

    标签: python shell path


    【解决方案1】:

    你可以让 bash 为你做这件事;)

    路径 = subprocess.check_output('bash -c "echo foo/{bar1,bar2}"', shell=True).split()

    【讨论】:

    • 是的,好简单的想法。除非有一些内置的shutil类型的东西,否则这实际上可能是最好的方法。
    • 如果您的原件中有一些空格(例如some {foo1,foo2}/bar
    • 啊,是的。空间会弄得一团糟。我想不出解决此问题的好方法-您可以逃脱空格,但随后拆分得到了错误的项目。也许在进入的时候用标记替换它们(比如 _ 如果你不希望它们正常出现),然后在退出时进行反向替换。
    • @Glenn 你应该使用单引号并转义字符串"'%s'" % p.replace("'", "'\''")
    【解决方案2】:

    没有内置的方法可以做到这一点。您需要编写一些解析代码来提取元素。

    【讨论】:

      猜你喜欢
      • 2014-11-20
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多