csv文件处理

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值