应用场景简介:
在SEO优化工作中,尤其是针对大型电商平台或内容网站,经常需要处理大量的长尾关键词数据。
这些数据通常以CSV文件的形式存储,且文件名包含特定平台(如Google、亚马逊)和关键词类别。
手动处理这些文件费时费力,且易出现错误。通过这个Python脚本,可以自动化批量处理目录中的CSV文件,将关键词数据提取、清洗并保存到TXT文件中,同时生成统计报告以便后续分析。
这一方案大大提升了工作效率,确保了数据处理的准确性和一致性。
处理速率:
总计发现 63 个CSV文件
处理了 1285805 个关键词数据
处理耗时 2.69 秒
示范:
import os
import glob
import pandas as pd
import random
import time
# 定义CSV文件路径
csv_directory = r'D:\data\excel'
# 获取所有符合命名规则的CSV文件路径
csv_files = glob.glob(os.path.join(csv_directory, '*--google长尾词_*.csv')) + glob.glob(os.path.join(csv_directory, '*--亚马逊长尾词_*.csv'))
# 如果没有找到CSV文件,则终止程序
if not csv_files:
print("未找到符合条件的CSV文件。")
exit()
def process_csv(file_path):
# 尝试用不同编码逐行读取CSV文件
encodings = ['utf-8', 'ISO-8859-1', 'GBK']
for encoding in encodings:
try:
return pd.read_csv(file_path, encoding=encoding, skiprows=2, usecols=[0])
except UnicodeDecodeError:
continue
raise ValueError(f"无法读取文件: {file_path},可能编码不正确。")
# 记录处理过的变量1,避免重复命名
processed_files = {}
# 总计关键词数量
total_keywords = 0
# 处理计时
start_time = time.time()
# 处理每个CSV文件
for csv_file in csv_files:
# 从文件名中提取第一个变量作为TXT文件名
file_name = os.path.basename(csv_file)
var1 = file_name.split('--')[0]
# 读取CSV文件
df = process_csv(csv_file)
# 提取A列的所有关键词并去重
keywords = df.iloc[:, 0].dropna().unique()
# 累加总关键词数量
total_keywords += len(keywords)
# 处理重复变量1的文件名
if var1 in processed_files:
processed_files[var1] += 1
else:
processed_files[var1] = 1
# 构建TXT文件名,包含变量1、重复编号、关键词数量
if processed_files[var1] > 1:
txt_file_name = f"{var1}_{processed_files[var1]}_{len(keywords)}.txt"
else:
txt_file_name = f"{var1}_{len(keywords)}.txt"
# 将关键词保存到TXT文件
with open(os.path.join(csv_directory, txt_file_name), 'w', encoding='utf-8') as txt_file:
for keyword in keywords:
txt_file.write(f"{keyword}\n")
# 删除已处理的CSV文件
os.remove(csv_file)
print(f"已处理文件:{file_name},关键词已保存到:{txt_file_name}")
# 计算处理耗时
end_time = time.time()
elapsed_time = end_time - start_time
# 输出处理结果
print(f"总计发现 {len(csv_files)} 个CSV文件")
print(f"处理了 {total_keywords} 个关键词数据")
print(f"处理耗时 {elapsed_time:.2f} 秒")
发表回复