吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1238|回复: 10
收起左侧

[求助] 批处理或者Python怎么批量复制文件

[复制链接]
pananning 发表于 2022-3-25 16:17
需要复制的文件列表在1.txt中,内容类似如下
[Asm] 纯文本查看 复制代码
Windows\System32\1.exe
Windows\System32\2.txt
Windows\System32\CatRoot
......

即在1.txt这个文件列表中既有文件也有整个目录,并且这个文件列表没有具体路径,没有盘符,只是相对路径,怎么用批处理或者Python批量复制到指定的文件夹D:\a目录中,例如复制完成后Windows\System32\1.exe的路径就变成了D:\a\Windows\System32\1.exe,即复制完成后相对路径不变
希望有大佬出手帮忙,谢谢

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

d8349565 发表于 2022-3-25 19:58
本帖最后由 d8349565 于 2022-3-25 20:01 编辑

import os
import shutil

source_path = os.path.abspath(r'E:\Projects\source_dir')
target_path = os.path.abspath(r'E:\Projects\target_dir')

if not os.path.exists(target_path):
    os.makedirs(target_path)

if os.path.exists(source_path):
    # root 所指的是当前正在遍历的这个文件夹的本身的地址
    # dirs 是一个 list,内容是该文件夹中所有的目录的名字(不包括子目录)
    # files 同样是 list, 内容是该文件夹中所有的文件(不包括子目录)
    for root, dirs, files in os.walk(source_path):
        for file in files:
            src_file = os.path.join(root, file)
            shutil.copy(src_file, target_path)
            print(src_file)

print('copy files finished!')

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
pananning + 1 + 1 热心回复!

查看全部评分

 楼主| pananning 发表于 2022-3-25 20:13
本帖最后由 pananning 于 2022-3-25 20:15 编辑
d8349565 发表于 2022-3-25 19:58
import os
import shutil

抱歉没太看懂,看你代码好像没有用到1.txt这个文件
cshadow 发表于 2022-3-25 23:12
这个相对路径。。。  如果存在多个相同路径,相同名字的话  你要选择保留哪一个。。。
 楼主| pananning 发表于 2022-3-26 02:15
cshadow 发表于 2022-3-25 23:12
这个相对路径。。。  如果存在多个相同路径,相同名字的话  你要选择保留哪一个。。。

不可能有相同的啊,D:\a\这个是唯一的啊,最终所有的文件都复制到这个目录来了
cshadow 发表于 2022-3-26 04:44
pananning 发表于 2022-3-26 02:15
不可能有相同的啊,D:\a\这个是唯一的啊,最终所有的文件都复制到这个目录来了

C:\Windows\System32\1.exe
C:\Windows\System32\2.txt
C:\Windows\System32\CatRoot
D:\Windows\System32\1.exe
D:\Windows\System32\2.txt
D:\Windows\System32\CatRoot
这样呢    因为是相对路径   需要做个遍历,得考虑重复的问题
 楼主| pananning 发表于 2022-3-26 10:44
cshadow 发表于 2022-3-26 04:44
C:\Windows\System32\1.exe
C:\Windows\System32\2.txt
C:\Windows\System32\CatRoot

不可以从批处理或python文件所在的目录开始往其子文件夹遍历吗,即批处理文件与Windows文件夹在同一目录下,至于其他地方还有没有Windows文件夹不关心,只遍历批处理所在的目录
 楼主| pananning 发表于 2022-3-27 00:38
在线等个大佬
netspirit 发表于 2022-3-27 00:55
d8349565 发表于 2022-3-25 19:58
import os
import shutil

请问一下如何截取相对路径?
假如我又一个路径c:\1\1\1\1\1\1.exe 我还有一个路径c:\1\1\
如何用python获取上面两个路径的相对路径?比如答案应该是1\1\1\1.exe
我应该用什么命令去获取相对路径啊?
d8349565 发表于 2022-3-27 08:14
netspirit 发表于 2022-3-27 00:55
请问一下如何截取相对路径?
假如我又一个路径c:\1\1\1\1\1\1.exe 我还有一个路径c:\1\1\
如何用python ...

[Python] 纯文本查看 复制代码
a = r'c:\1\1\1\1\1\1.exe'
b = r'c:\1\1'
c = a.replace(b,'.')

免费评分

参与人数 1吾爱币 +4 热心值 +1 收起 理由
netspirit + 4 + 1 谢谢@Thanks!其实我想问有没有内置函数...

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 15:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表