import csv
import os
import shutil
# CSV文件路径
csv_file_path = 'path/to/your/csvfile.csv'
# 源文件夹路径,假设你要检查的文件都在这个文件夹中
source_folder_path = 'path/to/your/source/folder'
# 目标文件夹路径
target_folder_base_path = 'path/to/your/target/folder'
# 创建一个字典,键是文件名,值是关键词
file_keyword_dict = {}
# 读取CSV文件
with open(csv_file_path, mode='r', newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
file_name, keyword = row[0], row[1]
file_keyword_dict[file_name] = keyword
# 检查每个文件并根据关键词移动它们
for file_name in os.listdir(source_folder_path):
# 获取文件对应的关键词
keyword = file_keyword_dict.get(file_name)
if keyword:
# 创建目标文件夹(如果不存在)
keyword_folder_path = os.path.join(target_folder_base_path, keyword)
if not os.path.exists(keyword_folder_path):
os.makedirs(keyword_folder_path)
# 文件的完整源路径和目标路径
source_file_path = os.path.join(source_folder_path, file_name)
target_file_path = os.path.join(keyword_folder_path, file_name)
# 移动文件
shutil.move(source_file_path, target_file_path)
print(f'Moved {file_name} to {keyword_folder_path}')
print('Finished processing all files.')
import pandas as pd
import os
import shutil
# CSV文件路径
csv_path = 'your_csv_file.csv'
# 源文件夹路径
source_folder = 'source_folder'
# 输出文件夹的基本路径
output_folder = 'output_folder'
# 要排除的关键词
excluded_keyword = 'keyword_to_exclude'
# 读取CSV文件
df = pd.read_csv(csv_path)
# 排除特定关键词
df_filtered = df[df['关键词'] != excluded_keyword]
# 对于每个关键词,找到值最大的文件名
max_value_files = df_filtered.loc[df_filtered.groupby('关键词')['值'].idxmax()]
# 确保输出文件夹的基本路径存在
os.makedirs(output_folder, exist_ok=True)
# 复制文件到相应的输出文件夹
for index, row in max_value_files.iterrows():
keyword = row['关键词']
file_name = row['文件名']
source_file = os.path.join(source_folder, file_name)
keyword_folder = os.path.join(output_folder, keyword)
# 创建以关键词命名的文件夹,如果不存在
os.makedirs(keyword_folder, exist_ok=True)
# 目标文件路径
destination_file = os.path.join(keyword_folder, file_name)
# 复制文件
if os.path.exists(source_file):
shutil.copy2(source_file, destination_file)
else:
print(f"文件 {source_file} 不存在。")
# 任务完成
print('完成文件分类')
import csv
import os
import shutil
from collections import defaultdict
# 指定CSV文件路径和其他路径
csv_file_path = 'path/to/your/csvfile.csv'
source_folder = 'path/to/your/sourcefolder'
target_root_folder = 'path/to/your/targetfolder'
# 定义要排除的关键词列表
exclude_keywords = ['unwanted_keyword1', 'unwanted_keyword2']
# 读取CSV文件内容时排除特定关键词
def read_csv(csv_path, exclude_keywords):
with open(csv_path, mode='r', newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
next(reader, None) # 如果有表头,跳过第一行
data = []
for row in reader:
if row[1] in exclude_keywords:
continue # 跳过排除的关键词
data.append((row[0], row[1], float(row[2])))
return data
# 其余函数代码保持不变...
# ... ...
def main():
# 读取CSV文件,并排除特定关键词
data = read_csv(csv_file_path, exclude_keywords)
# 获取每个关键词最大值对应的文件
max_values = get_max_value_files(data)
# 复制文件到对应的关键词文件夹内
copy_files(max_values, source_folder, target_root_folder)
print("文件复制完成。")
if __name__ == "__main__":
main()
import csv
import os
import shutil
from collections import defaultdict
# 指定CSV文件路径
csv_file_path = 'path/to/your/csvfile.csv'
# 指定源文件目录
source_folder = 'path/to/your/sourcefolder'
# 指定目标根文件夹
target_root_folder = 'path/to/your/targetfolder'
# 读取CSV文件内容
def read_csv(csv_path):
with open(csv_path, mode='r', newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
next(reader, None) # 如果有表头,跳过第一行
data = [(row[0], row[1], float(row[2])) for row in reader]
return data
# 找出每个关键词值最大的文件
def get_max_value_files(data):
max_values = defaultdict(lambda: (None, float('-inf')))
for filename, keyword, value in data:
if value > max_values[keyword][1]:
max_values[keyword] = (filename, value)
return max_values
# 根据找到的文件名复制文件到新的文件夹
def copy_files(max_values, source_folder, target_root_folder):
for keyword, (filename, _) in max_values.items():
target_folder = os.path.join(target_root_folder, keyword)
if not os.path.exists(target_folder):
os.makedirs(target_folder)
source_file_path = os.path.join(source_folder, filename)
target_file_path = os.path.join(target_folder, filename)
# 如果源文件存在,则复制到目标文件夹
if os.path.exists(source_file_path):
shutil.copy(source_file_path, target_file_path)
else:
print(f"文件 {filename} 不存在于目录 {source_folder} 中")
def main():
# 读取CSV文件
data = read_csv(csv_file_path)
# 获取每个关键词最大值对应的文件
max_values = get_max_value_files(data)
# 复制文件到对应的关键词文件夹内
copy_files(max_values, source_folder, target_root_folder)
print("文件复制完成。")
if __name__ == "__main__":
main()