若干个文件,根据他们的名字创建文件夹,把对应的移动进文件夹内

若干个文件,根据他们的名字创建文件夹,把对应的移动进文件夹内 bat格式

@echo off
for /r "E:\ATest" %%i in (*.tif) do (
md "E:\ATest%%ni"
move "%%i" "E:\ATest%%
ni"
)

for /r "E:\ATest" %%i in (*.tfw) do (
move "%%i" "E:\ATest%%~ni"
)
pause

脚本解释:

img

新建一个txt文件,将以上代码保存文件,修改后缀为.bat,双击执行该文件即可。

有帮助的话请点采纳~

该回答引用ChatGPT


import os
import shutil

# 指定目录路径
dir_path = "/path/to/your/directory/"

# 获取目录下所有文件名
file_names = os.listdir(dir_path)

# 遍历文件名列表
for file_name in file_names:
    # 提取关键信息
    folder_name = file_name.split("_")[0]  # 假设文件名格式为 "folder_name_file_name"
    
    # 创建文件夹
    folder_path = os.path.join(dir_path, folder_name)
    os.makedirs(folder_path, exist_ok=True)  # exist_ok=True 表示如果文件夹已经存在,则不会抛出异常
    
    # 移动文件到文件夹中
    file_path = os.path.join(dir_path, file_name)
    shutil.move(file_path, folder_path)

该回答引用GPTᴼᴾᴱᴺᴬᴵ
假设这些文件都在同一个文件夹内,并且文件名和文件夹名是对应的,例如文件名为 "folder1_file1.txt",对应的文件夹名为 "folder1"。
你可以按照以下步骤将这些文件移动到对应的文件夹中:
1.列出所有文件名,并提取文件夹名。可以使用 Python 中的 os 模块来完成这个步骤,具体代码如下:

import os

folder_path = "/path/to/files" # 更改为你自己的文件路径
files = os.listdir(folder_path)

for file in files:
    if os.path.isfile(os.path.join(folder_path, file)):
        folder_name = file.split("_")[0]
        if not os.path.exists(os.path.join(folder_path, folder_name)):
            os.mkdir(os.path.join(folder_path, folder_name))

2.创建文件夹。使用 os.mkdir() 函数来创建文件夹,如果文件夹已存在,则跳过这个步骤。

3.移动文件。使用 shutil 模块中的 move() 函数来移动文件到对应的文件夹中。代码如下:

import shutil

for file in files:
    if os.path.isfile(os.path.join(folder_path, file)):
        folder_name = file.split("_")[0]
        shutil.move(os.path.join(folder_path, file), os.path.join(folder_path, folder_name))

这样就可以将文件移动到对应的文件夹中了。请注意,在移动文件之前,请备份你的文件,以防不必要的损失。