使用python fabric检查文件模式是否存在远程

时间:2017-10-06 05:25:11

标签: python fabric

使用python结构,如何检查机器上远程存在/foo/bar_*等文件模式?
获得匹配的文件列表也很有用。

1 个答案:

答案 0 :(得分:0)

我使用python标准库中的glob

import glob
for filename in glob.glob("/for/bar_*"):
    print(filename)

我刚刚重读了您的问题 - 您希望在远程计算机上知道这一点。

虽然我无法找到适合您的API,但我注意到了几种方法。

  1. get
  2. 此解决方案仅在您希望在本地拥有文件或其大小可忽略时才真正有效。

    1. echo (via run)
    2. 这可能看起来像这样;

      @task
      def task_name():
          glob = "/foo/bar_*"
          result = run("echo " + glob)
          if result == glob:
              print("This pattern does not match a file/folder on the target machine")
          else:
              print("This pattern matched!")
      

      解决了需要知道文件是否存在的问题。然而,就确定存在哪些文件而言确实存在问题 - 因为解析它并不是那么简单(即,名称中包含空格的文件/文件夹)。它应该让你现在开始。