使用go和python递归删除.ds store文件的方法
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)
}
相关推荐
-
讲解Python中的递归函数
在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出: fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n 所以,fact(n)可以表示为n x fact(n-1),只有n=1时需要特殊处理. 于是,fact(n)用递归的方式写出来就是: def fact(n):
-
Python递归遍历列表及输出的实现方法
本文实例讲述了Python递归遍历列表及输出的实现方法.分享给大家供大家参考.具体实现方法如下: def dp(s): if isinstance(s,(int,str)): print(s) else: for item in s: dp(item) l=['jack',('tom',23),'rose',(14,55,67)] dp(l) 运行结果如下: jack tom 23 rose 14 55 67 希望本文所述对大家的Python程序设计有所帮助.
-
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
利用python实现的汉诺塔.带有图形演示 复制代码 代码如下: from time import sleep def disp_sym(num, sym): print(sym*num, end='') #recusiondef hanoi(a, b, c, n, tray_num): if n == 1: move_tray(a, c) disp(tray_num) sleep(0.7) else: hanoi(a, c, b, n-1, tray_num) move
-
python中尾递归用法实例详解
本文实例讲述了python中尾递归用法.分享给大家供大家参考.具体分析如下: 如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的.当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归.尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成优化的代码. 原理: 当编译器检测到一个函数调用是尾递归的时候,它就覆盖当前的活跃记录而不是在栈中去创建一个新的.编译器可以做到这点,因
-
python 实现文件的递归拷贝实现代码
所以就想把这些照片翻着看一遍,可是拷出来的照片手机 里是按时间自动分文件夹的,一个一个文件夹拷很是麻烦,于是打算写个python小脚本来完成这个工作(扯这么多,终于 到主题了,囧) 这是待拷贝的文件夹根目录,每个子目录下都有若干照片. 废话少说,上代码: 复制代码 代码如下: # -*- coding: utf-8 -*- #!/usr/bin/python #Filename:copyfile.py import os,shutil def mycopy(srcpath,dstpath): i
-
python使用递归解决全排列数字示例
第一种方法:递归 复制代码 代码如下: def perms(elements): if len(elements) <=1: yield elements else: for perm in perms(elements[1:]): for i in range(len(elements)): yield perm[:i] + elements[0:1] + perm[i:] for item in li
-
Python通过递归遍历出集合中所有元素的方法
本文实例讲述了Python通过递归遍历出集合中所有元素的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: '''''通过递归遍历出集合中的所有元素 Created on 2013-9-29 @author: L.Eric ''' def print_List(list_nums): for each_item in list_nums : if isinstance(each_item,list): print_Lis
-
python实现斐波那契递归函数的方法
本文以一个简单的实例讲述了python实现斐波那契数列数列递归函数的方法,代码精简易懂.分享给大家供大家参考之用. 主要函数代码如下: def fab(n): if n==1: return 1 if n==0: return 0 else: result=int(fab(n-1))+int(fab(n-2)) return result 测试代码如下: for i in range(10): print fab(i) 希望本文所述对大家Python程序设计的学习有所帮助.
-
Python中使用装饰器来优化尾递归的示例
尾递归简介 尾递归是函数返回最后一个操作是递归调用,则该函数是尾递归. 递归是线性的比如factorial函数每一次调用都会创建一个新的栈(last-in-first-out)通过不断的压栈,来创建递归, 很容易导致栈的溢出.而尾递归则使用当前栈通过数据覆盖来优化递归函数. 阶乘函数factorial, 通过把计算值传递的方法完成了尾递归.但是python不支出编译器优化尾递归所以当递归多次的话还是会报错(学习用). eg: def factorial(n, x): if n == 0: ret
-
使用go和python递归删除.ds store文件的方法
python版本: 复制代码 代码如下: #!/usr/bin/env pythonimport 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.rem
-
python递归删除指定目录及其所有内容的方法
实例如下: #! /usr/bin/python # -*- coding: utf-8 -*- import os def del_dir_tree(path): ''' 递归删除目录及其子目录, 子文件''' if os.path.isfile(path): try: os.remove(path) except Exception, e: #pass print e elif os.path.isdir(path): for item in os.listdir(path): itempa
-
Python删除windows垃圾文件的方法
本文实例讲述了Python删除windows垃圾文件的方法.分享给大家供大家参考.具体如下: #coding:utf-8 import os #from glob import glob if os.name == 'nt': if 'HOMEPATH' in os.environ: home = os.environ['HOMEDRIVE'] + os.environ['HOMEPATH'] else: home = os.environ['HOMEPATH'] workpath = os.p
-
python 列表删除所有指定元素的方法
如下所示: a = [1,1,1,2,3,45,1,2,1] a.remove(1) result: [1,1,2,3,45,1,2,1] while 1 in a: a.remove(1) result: [2,3,45,2] 以上这篇python 列表删除所有指定元素的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: Python列表删除的三种方法代码分享 Python实现删除列表中满足一定条件的元素示例 Python实现判断并移除列表
-
python批量解压zip文件的方法
这是一个用python写解压大量zip脚本的说明,本人新手一个,希望能对各位有所启发. 首先要注意的,在运行自己的脚本之前一定先备份或者复制出一些样本进行测试,不然出错会很麻烦: 之后我用到的是解压zip文件的扩展包zipfile,可以直接pip安装或者在IDE里安装,需要特别注意的是这个包的文件名解码方式需要我们去修改,先去查看源文件,直接搜索"cp437"(一个编码方式),找到后全部替换为"gbk",即可解决中文显示问题. 代码: import os impor
-
浅析Python打包时包含静态文件处理方法
使用场景 已搭建了PyPI私有库,上传公共库包含静态文件,如需要使用sql静态文件初始化数据库. 打包python包,给其他人使用,但项目中包含静态文件,如html. 解决步骤 解决静态文件读取问题 解决静态文件打包问题 环境 Python3.8 PyCharm 2020 demo项目为例 创建项目 展示静态文件读取问题 解决方案 展示静态文件打包问题 解决方案 1. 创建项目 创建一个demo项目(text-setup),目录如下 test-setup demo \_\_init\_\_.py
-
Python读取和存储yaml文件的方法
YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写.在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言). YAML 的语法和其他高级语言类似,并且可以简单表达清单.散列表,标量等数据形态.它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构.各种配置文件.倾印调试内容.文件大纲(例如:许多电子邮件标题格式和YAML
-
Python详解复杂CSV文件处理方法
目录 项目简介 项目笔记与心得 1.分批处理与多进程及多线程加速 2.优化算法提高效率 总结 项目简介 鉴于项目保密的需要,不便透露太多项目的信息,因此,简单介绍一下项目存在的难点: 海量数据:项目是对CSV文件中的数据进行处理,而特点是数据量大...真的大!!!拿到的第一个CSV示例文件是110多万行(小CASE),而第二个文件就到了4500万行,等到第三个文件......好吧,一直没见到第三个完整示例文件,因为太大了,据说是第二个示例文件的40多倍,大概二十亿行...... 业务逻辑复杂:项
-
Python实现简单拆分PDF文件的方法
本文实例讲述了Python实现简单拆分PDF文件的方法.分享给大家供大家参考.具体如下: 依赖pyPdf处理PDF文件 切分pdf文件 使用方法: 1)将要切分的文件放在input_dir目录下 2)在configure.txt文件中设置要切分的份数(如要切分4份,则设置part_num=4) 3)执行程序 4)切分后的文件保存在output_dir目录下 5)运行日志写在pp_log.txt中 P.S. 本程序可以批量切割多个pdf文件 from pyPdf import PdfFileWri
-
Python多进程分块读取超大文件的方法
本文实例讲述了Python多进程分块读取超大文件的方法.分享给大家供大家参考,具体如下: 读取超大的文本文件,使用多进程分块读取,将每一块单独输出成文件 # -*- coding: GBK -*- import urlparse import datetime import os from multiprocessing import Process,Queue,Array,RLock """ 多进程分块读取文件 """ WORKERS = 4
随机推荐
- http协议详解(超详细)
- nginx上传文件大小报错500的解决办法
- 在Java的Struts框架下进行web编程的入门教程
- java环境变量如何配置
- Asp.net实现MVC处理文件的上传下载功能实例教程
- 一个严格的PHP Session会话超时时间设置方法
- jsp Hibernate批量更新和批量删除处理代码
- mysql实现合并同一ID对应多条数据的方法
- InnoDB引擎数据库主从复制同步新的分享
- 浅析javascript中的Event事件
- 使用XHTML1.0 Strict中需要特别注意的地方
- JS中append字符串包含onclick无效传递参数失败的解决方案
- c#中的泛型委托详解
- cnblogs 代码高亮显示后的代码复制问题解决实现代码
- Linux系统中bash shell编程的10个基础问题讲解
- bat 文件 学习使用指南
- Microsoft Search 服务无法启动 解决办法.
- sql not in 与not exists使用中的细微差别
- PHP 服务器配置(使用Apache及IIS两种方法)
- jQuery实现QQ空间汉字转拼音功能示例