文件夹下文件的拷贝
此次文件的拷贝主要利用python内置库shutil,shutil模块提供了许多关于文件和文件集合的高级操作,特别提供了支持文件复制和删除的功能。
利用copyfile()方法,进行递归运算即可实现,保证源文件夹什么样,复制出来的就什么样。
具体代码如下:
import os
import shutil
def get_file_list(file_path):
# 获取源文件夹下的内容
file_names_list = os.listdir(file_path)
checked_file_list = []
for temp_file in file_names_list:
checked_file_list.append(temp_file)
return checked_file_list
def copy_file(copy_file_path, file_path, file_list):
# 判断想要复制的路径是否存在,如果不存在就创建
if not os.path.exists(copy_file_path):
os.makedirs(copy_file_path)
for i in range(len(file_list)):
# 拼接文件夹和文件的路径
old = os.path.join(file_path, file_list[i])
new = os.path.join(copy_file_path, file_list[i])
chose(old, new)
def chose(old, new):
# 判断是不是文件,如果是文件直接copy
if os.path.isfile(old):
shutil.copyfile(old, new)
# 如果是文件夹,调用方法获取文件夹下内容
if os.path.isdir(old):
sub_file_list = get_file_list(old)
# 进行递归,重复操作
copy_file(new, old, sub_file_list)
if __name__ == "__main__":
# 源路径
file_path = '/script/sonar_conf'
# 拷贝路径
copy_file_path = 'c:\\code\\phase2\\script\\copy_sonar_conf'
file_list = get_file_list(file_path)
# 拷贝方法
copy_file(copy_file_path, file_path, file_list)
shutil库中还有很多其他的方法,可以看一看。
当然,方法不止一种,写的也不算好。继续努力。希望能帮到有需要的人。