若干个文件,根据他们的名字创建文件夹,把对应的移动进文件夹内 bat格式
@echo off
for /r "E:\ATest" %%i in (*.tif) do (
md "E:\ATest%%ni"ni"
move "%%i" "E:\ATest%%
)
for /r "E:\ATest" %%i in (*.tfw) do (
move "%%i" "E:\ATest%%~ni"
)
pause
脚本解释:
新建一个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))
这样就可以将文件移动到对应的文件夹中了。请注意,在移动文件之前,请备份你的文件,以防不必要的损失。