python批量移动文件到文件夹,
在工作中,不可避免地会遇到档案需要批量整理的情况。当一些文件需要从一堆文件中批量转移时,如果手动一个一个转移,难免浪费时间。本文主要介绍如何在python中使用os模块批量移动文件的相关信息。有需要的可以参考一下。
本文介绍了利用python将一个文件夹(及其子文件夹)下的特定类型文件批量移动到另一个文件夹中。
通过python操作系统目录及其文件,需要用到os包,本次具体用到如下方法
这个方法可以遍历一个文件夹及其子文件(子子文件夹等)。)os.rename(),该方法用于命名文件或目录(由于是操作文件的绝对路径,实际上相当于剪切文件)。此外,您可以借助shutil库移动或复制文件。
下面是示例代码
def run_main(源目录,目标目录):
数量=0
对于os.walk中的根、目录、文件(source_dir,topdown=False):
# root表示当前正在访问的文件夹的路径。
# dirs表示该文件夹下的子目录名称列表。
# files表示该文件夹中的文件列表。
对于文件:中的名称
# print(os.path.join(root,name))
# print(type(os.path.join(root,name)))
File=os.path.join(root,name) #拼接文件的完整路径(注意,当我们操作文件或文件夹时,必须使用绝对路径)
打印(文件)
If file.split( . ))[xls , xlsx , csv] 3360 #中的[-1]使用split确定获取的文件路径是否以csv结尾。
#打印(文件)
Tar _ file=file.split( . )[-2] str (num) . file.split( . ))[-1] #为了避免文件重复,在原文件名上加上递增的序列号Num,形成新文件名。
# print(target _ dir tar _ file . split( \ \ )[-1])
OS . path . is file(target _ dirtar _ file . split( \ \ )[-1]): #确定该文件中是否已经存在目标文件夹。
打印(“已经存在于此文件中”)
else:
打印(移动第{}个文件:{} 。format (num1,tar _ file.split (\ \) [-1])
os.rename(file,target _ dir tar _ file . split( \ \ )[-1])
数量=1
if __name__==__main__:
run_main(D:/source/, D:/target/)
关于如何复制文件,还可以借助shutil
将文件内容复制到另一个文件。
导入技能
shutil . copy file obj(open( old . XML , r ),open(new.xml , w ))
shutil.copyfile(src,dst)
复印文件
Shuttil.copyfile (f1.log , f2.log) #目标文件不需要存在
shutil.copymode(夏令时,夏令时)
仅复制权限。内容、组和用户保持不变。
Shuttil.copymode (f1.log , f2.log) #目标文件必须存在。
shutil.copystat(夏令时,夏令时)
仅复制状态信息,包括:模式位、atime、mtime、标志。
Shuttil.copystat (f1.log , f2.log) #目标文件必须存在。
shutil.copy(夏令时,夏令时)
复制文件和权限
导入shutil23shutil.copy(f1.log , f2.log )
shutil.copy2(夏令时,夏令时)
复制文件和状态信息
导入shutil23shutil.copy2(f1.log , f2.log )
shut . ignore _ patterns(* patterns)#基本不用
shutil.copytree(src,dst,symlinks=False,ignore=None)
递归解拷贝文件夹
导入技能
shutil.copytree(folder1 , folder2 ,ignore=shut il . ignore _ patterns( *。pyc , tmp* ))
#目标目录不能存在。注意folder2目录的父目录要有写权限。忽略意味着排除。
shutil.rmtree(路径[,ignore_errors[,onerror]])
递归删除文件
导入技能
shutil.rmtree(folder1 )
shutil.move(src,dst)
递归移动文件,类似于mv命令,其实就是重命名。
导入技能
shutil.move(folder1 , folder3 )
shutil.make_archive(基本名称,格式,)
创建一个压缩包并返回文件路径,例如:zip,tar
Base_name:压缩包的文件名,或者压缩包的路径。如果只是文件名,则保存到当前目录,否则保存到指定路径。
例如:/tmp/data_bak=save to /tmp/
格式:压缩包类型,“zip”、“tar”、“bztar”、“gztar”
Root_dir:要压缩的文件夹路径(默认的当前目录)
所有者:用户,默认为当前用户。
Group: group,默认为当前组。
Logger:用于日志记录,通常是日志记录。记录器对象。
#将文件打包在/data下,并将它们放在当前程序目录中。
导入技能
ret=shutil . make _ archive( data _ bak , gztar ,root_dir=/data )
#将文件打包在/data下,放在/tmp/目录下。
导入技能
ret=shutil . make _ archive(/tmp/data _ bak , gztar ,root_dir=/data )
总结
关于如何用python中的os模块批量移动文件的这篇文章到此为止。关于python用os模块批量移动文件的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。