文件名中包含的关键字,讲文件移动到指定的文件夹中
时间: 2024-03-16 17:44:03 浏览: 14
好的,您可以使用Python中的`os`和`shutil`模块来实现这个功能。以下是一个简单的代码示例:
```python
import os
import shutil
# 定义关键字和目标文件夹
keywords = ["关键字1", "关键字2", "关键字3"]
target_dirs = {"关键字1": "目标文件夹1", "关键字2": "目标文件夹2", "关键字3": "目标文件夹3"}
# 遍历目录中的所有文件
for filename in os.listdir("原始文件夹"):
# 判断文件名中是否包含关键字
for keyword in keywords:
if keyword in filename:
# 如果包含关键字,将文件移动到对应的目标文件夹中
shutil.move(os.path.join("原始文件夹", filename), os.path.join(target_dirs[keyword], filename))
break
```
在这个示例中,您需要将`keywords`列表中的关键字替换为您需要的关键字,将`target_dirs`字典中的键值对替换为您需要的目标文件夹和对应的关键字。然后,将`"原始文件夹"`替换为您要分类的文件所在的文件夹。运行代码后,文件将按照关键字被移动到对应的目标文件夹中。
相关问题
用Python thinker写一个文件名分类程序,将文件名带PNS关键字和BG关键字的文件分开
好的,我可以为您提供一个简单的Python Tkinter程序,用于将文件名中包含PNS和BG关键字的文件分开。以下是代码:
```python
import os
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
# 选择目标文件夹
folder_selected = filedialog.askdirectory()
# 定义PNS和BG关键字
pns_keyword = "PNS"
bg_keyword = "BG"
# 创建保存文件的文件夹
pns_folder = os.path.join(folder_selected, "PNS Files")
os.makedirs(pns_folder, exist_ok=True)
bg_folder = os.path.join(folder_selected, "BG Files")
os.makedirs(bg_folder, exist_ok=True)
# 遍历目标文件夹中的文件
for file_name in os.listdir(folder_selected):
file_path = os.path.join(folder_selected, file_name)
if os.path.isfile(file_path):
if pns_keyword in file_name:
os.rename(file_path, os.path.join(pns_folder, file_name))
elif bg_keyword in file_name:
os.rename(file_path, os.path.join(bg_folder, file_name))
```
这个程序使用了Python的os和tkinter模块。您需要先选择一个目标文件夹,然后程序将遍历该文件夹中的所有文件,并根据文件名中是否包含PNS和BG关键字将文件分别移动到PNS Files和BG Files文件夹中。请注意,如果这两个文件夹不存在,程序将自动创建它们。
您可以将此代码保存为.py文件并运行它,或者将其复制并粘贴到Python交互式界面中运行。希望这可以帮助到您!
python将文件夹中的文件名中带有XMGJ或者SJYH的PDF移动到另一个文件夹
可以使用Python的os模块和shutil模块来完成这个任务。首先,可以用os模块中的listdir()函数列出文件夹中所有的文件名,然后遍历文件名列表,用字符串的in操作符判断文件名中是否包含"XMGJ"或者"SJYH"关键字,并将符合条件的文件名加入一个列表。最后,可以使用shutil模块的move()函数将这些文件移动到另一个文件夹中。以下是一个示例代码:
```python
import os
import shutil
source_folder = r"C:\path\to\source\folder"
dest_folder = r"C:\path\to\dest\folder"
keywords = ["XMGJ", "SJYH"]
files_to_move = []
for filename in os.listdir(source_folder):
for keyword in keywords:
if keyword in filename and filename.endswith(".pdf"):
files_to_move.append(os.path.join(source_folder, filename))
for file_path in files_to_move:
shutil.move(file_path, dest_folder)
```
注意事项:在使用这个代码时,需要将source_folder和dest_folder修改为实际的文件夹路径,并且确保代码执行时有足够的权限移动文件。