WELCOME

不积跬步,无以至千里;不积小流,无以成江海。

Python的os的文件复制

1.单纯复制文件

# 先判断src和target是否是文件夹,
# 如果是文件夹,则取出文件夹里面所有的文件(没有文件夹),遍历每一个文件,
# 将每一个文件的绝对路径join出来 :E:\p1\girl.jpg

 

 1 src_path = r'E:\p1'
 2 target_path = r'E:\p3'
 3 
 4 def copy(src, target):
 5     if os.path.isdir(src) and os.path.isdir(target):
 6         filelist = os.listdir(src)
 7         for file in filelist:
 8             print(src)  # >>E:\p1
 9             path = os.path.join(src, file)
10             print(path)  # >> E:\p1\girl.jpg
11             with open(path, 'rb') as rstream:
12                 container = rstream.read()
13                 path0 = os.path.join(target, file)
14                 print(path0)  # >>E:\p3\girl.jpg
15                 with open(path0, 'wb') as wstream:
16                     wstream.write(container)
17         else:
18             print('复制完成')
19 
20 
21 # 调用函数
22 copy(src_path, target_path)

 

2.复制文件

复制一个文件夹下面的所有文件到另一个文件夹中取(递归)

 

src_path = r'E:\p1'
target_path = r'E:\p3'


def copy(src, target):
    filelist = os.listdir(src)  # 获取文件夹里面的内容
    print(filelist)  # ['aa.txt', 'girl.jpg', '文件夹', '新建 DOCX 文档.docx', '新建 XLSX 工作表.xlsx']
    for file in filelist:
        path = os.path.join(src, file)
        if os.path.isdir(path):
            # 继续调用copy()函数
            copy(path, target)
        else:
            # 不是文件夹则直接复制
            with open(path, 'rb') as rstream:
                container = rstream.read()
                path0 = os.path.join(target, file)
                with open(path0, 'wb') as wstream:
                    wstream.write(container)
    print('复制完成!')


copy(src_path, target_path)
print('复制成功!')
会将一个文件夹下面的文件都复制过去,但是会丢掉这个文件夹下面的所有文件夹,只会复制文件夹下
面的文件

 

 

文件夹里面的文件有:

 

 

 

复制完成之后

 

 

posted @ 2022-03-25 18:20  Ambitious~  阅读(1529)  评论(0)    收藏  举报