资讯专栏INFORMATION COLUMN

Py20170117_指定目录树下,选择性拷贝指定类型文件,至指定的一个文件夹

Godtoy / 819人阅读

摘要:所以在此提醒和指出指出,这里的分别指每一次循环时当前文件夹自己本身当前文件夹的子文件夹当前文件下的文件。模块用于复制移动改名删除文件,提醒可删除非空文件非空文件夹。第一次写博客,不足之处,还请轻喷指正

练手小项目二:指定目录树下,选择性拷贝指定类型文件,至指定的一个文件夹

"""此函数作用:选择性复制某目录树下的指定扩展名文件至指定同一目录"""

#coding: utf-8
import os,shutil

#定义函数
def cp_file(orig,dest,kind):
    result=[];i=0
    for folder,subfolders,files in os.walk(orig):
        for file in files:
            if(file.endswith("."+kind)):
                f=os.path.join(folder,file)
                result.append(f)
    print result
    for k in result:
        shutil.copy(k,dest);i+=1;print("copying",k);
    return i

#自测用例
#输入abc时,按照如下格式(转义反斜杠):E:mypractice,C:Users39419Desktoppic,jpg
a=raw_input("source:")
if os.path.exists(a) ==False:
     print(a,"is a false source");
b=raw_input("destination: ")
if os.path.exists(b)==False:
    os.makedirs(b)
    print("have created the selected path: ",b);
c=raw_input("kind of file :")

#正式调用函数
t=cp_file(a,b,c)
print(" have copied ",t,"files")  

总结反思:
1、之前由于对os.walk()的理解不透彻,导致if代码块下的路径一直纠结不对,运行结果为0。所以在此提醒和指出指出,这里的folder、sunfolder、file分别指每一次for循环时当前文件夹自己本身、当前文件夹的子文件夹、当前文件下的文件。
2、shutil模块用于复制移动改名删除文件,提醒:可删除非空文件、非空文件夹。而os模块只能删除空文件夹,文件不管空与否,皆可删。
3、构建有效路径的方式:a 直接赋值变量,如自测用例;b 调用os.path.join()来实现,如函数体中所示。
ps:第一次写博客,不足之处,还请轻喷指正:-D

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41269.html

相关文章

  • python模块之shutil

    摘要:并非所有平台都能检查和修改软链接,能告诉用户本地平台可使用哪些功能。当为且为软链接时,将作为软链接被创建并拷贝的所有元数据到。原始如果存在则被直接覆盖是软链接文件,是普通文件或软链接文件,移动并重命名为,指向的真实文件为之前指向的源文件。 shutil模块提供了一些针对文件和目录的高级操作,主要是拷贝、移动。对于单个文件的操作,还可参考os模块 Warning:即使是高级别的拷贝函数(...

    amuqiao 评论0 收藏0
  • python大佬养成计划----os,datetime,time模块补充

    摘要:是否则检验指定的对象是否存在。由于的模块实现主要调用库,所以各个平台可能有所不同。时间格式时间戳的方式通常来说,时间戳是指格林威治时间年月日时分秒北京时间年月日时分秒起至现在的总秒数。元组方式元组共有个元素,返回的函数主要有,,。 os模块 os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,...

    frank_fun 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<