当前位置 博文首页 > 使用go和python递归删除.ds store文件的方法

    使用go和python递归删除.ds store文件的方法

    作者:admin 时间:2021-06-21 17:43

    python版本:

    复制代码 代码如下:

    #!/usr/bin/env python
    import os, sys;

    def walk(path):
      print "cd directory:"+path

      for item in os.listdir(path):
        try:
          if(item == ".DS_Store"):
            global count
            count = count+1
            print " find file .Ds_Store"
            os.remove(path+"/"+item)
          else:
            if(os.path.isdir(path+"/"+item)):
              print " "+path+"/"+item+" is directory"
              walk(path+"/"+item)
            else:
              print " "+path+"/"+item+" is file"
        except OSError,e:
          print e

     
    if __name__=='__main__':
      count = 0
      if(len(sys.argv)>1):
        root_dir = sys.argv[1]
      else:
        root_dir = os.getcwd()
      walk(root_dir)
      print "\ntotal number:"+str(count)

    go语言版本:

    复制代码 代码如下:

    package main

    import (
      "flag"
      "fmt"
      "os"
      "path/filepath"
    )

    func getFilelist(path string) int {
      count := 0
      err := filepath.Walk(path, func(path string, f os.FileInfo, err error) error {

        if f == nil {
          return err
        }

        if f.IsDir() {
          fmt.Printf("cd directry %s\n", path)
          return nil
        }

        if f.Name() == ".DS_Store" {
          count++
          println(" " + f.Name() + " is deleted")
          os.Remove(path)
        }

        return nil
      })

      if err != nil {
        fmt.Printf("filepath.Walk() returned %v\n", err)
      }
      return count
    }

    func main() {
      flag.Parse()
      root := flag.Arg(0)
      count := 0
      if root == "" {
        crurrent_dir, _ := filepath.Abs(".")
        count = getFilelist(crurrent_dir)
      } else {
        count = getFilelist(root)
      }
      fmt.Printf("\n\n total number:%d\n", count)
    }

    js