macos去除去除.DS_Store文件--使用python和go(原创)

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

.DS_Store (英文全称 Desktop Services Store)是一种由苹果公司的Mac OS X操作系统所创造的隐藏文件,目的在于存贮文件夹的自定义属性,例如文件们的图标位置或者是背景色的选择。——见维基百科

有的时候,.DS_Store让人觉得特别麻烦,比如压缩文件或者采用版本控制软件如svn和git的时候,因此写了一段代码递归删除.DS_Store文件,小弟是编程初手,这里的代码只是第一版,请大家多多指教。

python版本:

#!/usr/bin/env python

importos,sys;

defwalk(path):

PRint"cd directory:"+path

foriteminos.listdir(path):

try:

if(item==".DS_Store"):

globalcount

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"

exceptOSError,e:

printe

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语言版本:

packagemain

import(

"flag"

"fmt"

"os"

"path/filepath"

)

funcgetFilelist(pathstring)int{

count:=0

err:=filepath.Walk(path,func(pathstring,fos.FileInfo,errerror)error{

iff==nil{

returnerr

}

iff.IsDir(){

fmt.Printf("cd directry %s\n",path)

returnnil

}

iff.Name()==".DS_Store"{

count++

println(" "+f.Name()+" is deleted")

os.Remove(path)

}

returnnil

})

iferr!=nil{

fmt.Printf("filepath.Walk() returned %v\n",err)

}

returncount

}

funcmain(){

flag.Parse()

root:=flag.Arg(0)

count:=0

ifroot==""{

crurrent_dir,_:=filepath.Abs(".")

count=getFilelist(crurrent_dir)

}else{

count=getFilelist(root)

}

fmt.Printf("\n\n total number:%d\n",count)

}

最后,这是第一篇博客,不知道如何使用博客园的代码编辑器,求指教呀

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航