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 = [(row[0], row[1], float(row[2])) for row in reader if row[1] not in exclude_keywords]
return data
# 找出每个文件最大值对应的关键词
def get_max_keyword_files(data):
file_max_keywords = defaultdict(lambda: (None, float('-inf')))
for filename, keyword, value in data:
if value > file_max_keywords[filename][1]:
file_max_keywords[filename] = (keyword, value)
return file_max_keywords
# 创建目录,并移动文件到对应的最大值关键词文件夹
def move_files_to_max_keyword_folders(file_max_keywords, source_folder, target_root_folder):
for filename, (max_keyword, _) in file_max_keywords.items():
target_folder = os.path.join(target_root_folder, max_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.move(source_file_path, target_file_path)
else:
print(f"文件 {filename} 不存在于目录 {source_folder} 中")
def main():
# 读取CSV文件,并排除特定关键词
data = read_csv(csv_file_path, exclude_keywords)
# 获取每个文件最大值对应的关键词
file_max_keywords = get_max_keyword_files(data)
# 将每个文件移动到它的最大值关键词的文件夹
move_files_to_max_keyword_folders(file_max_keywords, source_folder, target_root_folder)
print("文件移动完成。")
if __name__ == "__main__":
main()
csv文件处理2
最新推荐文章于 2024-09-15 22:31:42 发布
这篇文章介绍了如何使用Python脚本读取CSV文件,排除特定关键词,找出每个文件最大值对应的关键词,然后将文件移动到对应的关键词文件夹中。主要涉及了CSV读取、数据处理和文件操作技术。
摘要由CSDN通过智能技术生成