怎么复制chatgpt上的表格 Python 批量复制文件并解决Windows copy 报错 “系统找不到指定

默认分类2年前 (2023)发布 admin
1,051 0
ChatGPT国内版

批量复制文件并解决 copy 报错 “系统找不到指定文件”

创作背景 我的需求 我的思路 首先,使用 os.walk() 递归遍历指定文件夹中所有的文件利用 () 判断是否为指定后缀的文件使用 os.() + copy 复制并修改文件名 问题再现 第一步创建目录倒没出现什么问题,代码如下:

import os
def walk_dir(DIR_PATH, COPY_PATH):
	
	# 归一化路径的表示形式
    DIR_PATH = DIR_PATH.replace('/', '\')
    COPY_PATH = COPY_PATH.replace('/', '\')
	
	# 新目录下创建旧目录中第一级子目录
    for old in os.listdir(DIR_PATH):
    	new = os.path.join(COPY_PATH, old)
        if os.path.isdir(old) and not os.path.exists(new):
            os.mkdir(new)
            print(f'mkdir {new} successfully')

第二步是 遍历文件 ,并且 判断是否为指定后缀的文件 (以 pdf 为例),代码如下

怎么复制chatgpt上的表格 Python 批量复制文件并解决Windows copy 报错 “系统找不到指定

for root, dirs, files in os.walk(DIR_PATH):
    for f in files:
        if f.endswith('.pdf'):
            pass

第三步 复制文件到指定文件夹 ,这一步出问题,先看原代码

# 遍历文件夹内所有文件
for root, _, files in os.walk(DIR_PATH):
    for f in files:
        if f.endswith('.pdf'):
            f = os.path.join(root, f).replace('\', '/')
            new = f.replace(root.replace('\', '/') + '/', '')
            os.system(f'copy {f} {COPY_PATH}/{new}')

怎么复制chatgpt上的表格 Python 批量复制文件并解决Windows copy 报错 “系统找不到指定

代码展示

DIR_PATH = r'【原目录】'
COPY_PATH = r'【新目录】'
def walk_dir():
    global DIR_PATH, COPY_PATH
    DIR_PATH = DIR_PATH.replace('/', '\')
    COPY_PATH = COPY_PATH.replace('/', '\')
	
	# 创建一级子目录
    for old in os.listdir(DIR_PATH):
        new = os.path.join(COPY_PATH, old)
        if os.path.isdir(old) and not os.path.exists(new):
            os.mkdir(new)
            print(f'mkdir {new} successfully')
    for root, dirs, files in os.walk(DIR_PATH):
        for f in files:
            if f.endswith('.pdf') or f.endswith('.doc'):
            
            	# 路径表示归一化
                f = os.path.join(root, f).replace('/', '\')
                
                # 用路径表示文件名,以 _ 分隔父子目录
                # 将 _ 转换为 - ,将  转换为 _
                new = f.replace(DIR_PATH + '\', '').replace('_', '-').replace('\', '_')
                
                os.system(f'''copy "{f}" "{os.path.join(COPY_PATH, new)}"''')

结尾

© 版权声明
广告也精彩

相关文章

暂无评论

暂无评论...