python复制文件夹 [包含子文件夹 询问是否覆盖文件]

Windows 上的 xcopy 居然不可以实现 不覆盖文件复制文件夹

于是用python写了一个:

# coding: utf-8

import os

__author__ = 'vanxkr.com'

def vanxkr_copy_tree(in_dir, out_dir, write_exists=False, tabnum=0):
  if(0 == tabnum):
    print('文件目录复制模式为: %s' % ('覆盖' if write_exists else '跳过'))
  if not os.path.exists(out_dir):
    os.makedirs(out_dir)

  print('%s当前目录: %s' % ('\t'*tabnum, in_dir))

  copy_file_counts = 0
  copy_dir_counts = 0

  for f in os.listdir(in_dir):
    in_f = os.path.join(in_dir, f)
    out_f = os.path.join(out_dir, f)

    if os.path.isfile(in_f):
      copy_file_counts += 1

      if write_exists or not os.path.exists(out_f): # 文件不存在
        open(out_f, "wb").write(open(in_f, "rb").read())
        print('%s%s 个文件已复制完毕: %s'\
          % ('\t'*(tabnum+1),
            copy_file_counts,\
            os.path.split(in_f)[1]))
      else:
        print('%s%s 个文件已存在跳过: %s'\
          % ('\t'*(tabnum+1),
            copy_file_counts,\
            os.path.split(in_f)[1]))
    if os.path.isdir(in_f):
      copy_dir_counts += 1
      print('%s%s 个文件夹: %s' % ('\t'*(tabnum+1), copy_dir_counts, in_f))
      vanxkr_copy_tree(in_f,out_f,write_exists,tabnum+1)

if '__main__' == __name__:
  d1 = r'd:\d1'
  d2 = r'd:\d2'
  vanxkr_copy_tree(d1,d2,write_exists=False)
  print('复制完毕')

参数 write_exists

True: 覆盖

False: 不覆盖

本文作者:vanxkr

本文链接:http://www.vanxkr.com/2018/5/python-copy

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!

QTableWidget 设置自适应表格宽度 自适应内容宽度
0 条评论
已登录,注销 取消