|
@@ -0,0 +1,108 @@
|
|
|
|
|
+# 导出的亚马逊表格处理
|
|
|
|
|
+
|
|
|
|
|
+当前目录: C:\python\WM
|
|
|
|
|
+
|
|
|
|
|
+python 环境: ./venv/bin/python
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+import csv
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def read_csv(file_path):
|
|
|
|
|
+ """
|
|
|
|
|
+ 读取CSV文件并返回数据列表
|
|
|
|
|
+ :param file_path: CSV文件路径
|
|
|
|
|
+ :return: 包含CSV数据的列表
|
|
|
|
|
+ """
|
|
|
|
|
+ with open(file_path, mode='r', encoding='utf-8') as file:
|
|
|
|
|
+ reader = csv.reader(file)
|
|
|
|
|
+ data = [row for row in reader]
|
|
|
|
|
+ return data
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def insert_empty_column(data, column_index):
|
|
|
|
|
+ """
|
|
|
|
|
+ 在指定列之后插入一个空列
|
|
|
|
|
+ :param data: CSV数据列表
|
|
|
|
|
+ :param column_index: 插入空列的列索引
|
|
|
|
|
+ :return: 插入空列后的数据列表
|
|
|
|
|
+ """
|
|
|
|
|
+ for row in data:
|
|
|
|
|
+ row.insert(column_index + 1, '')
|
|
|
|
|
+ return data
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def translate_text(text, target_language='zh'):
|
|
|
|
|
+ """
|
|
|
|
|
+ 翻译文本(测试函数,返回固定文本)
|
|
|
|
|
+ :param text: 需要翻译的文本
|
|
|
|
|
+ :param target_language: 目标语言,默认为中文
|
|
|
|
|
+ :return: 翻译后的文本(测试文本)
|
|
|
|
|
+ """
|
|
|
|
|
+ # 这里我们使用一个固定的测试文本作为翻译结果
|
|
|
|
|
+ return "测试翻译文本"
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def translate_column(data, column_index, target_language='zh'):
|
|
|
|
|
+ """
|
|
|
|
|
+ 翻译指定列的文本
|
|
|
|
|
+ :param data: CSV数据列表
|
|
|
|
|
+ :param column_index: 需要翻译的列索引
|
|
|
|
|
+ :param target_language: 目标语言,默认为中文
|
|
|
|
|
+ :return: 翻译后的数据列表
|
|
|
|
|
+ """
|
|
|
|
|
+ for row in data:
|
|
|
|
|
+ if len(row) > column_index:
|
|
|
|
|
+ row[column_index] = translate_text(row[column_index], target_language)
|
|
|
|
|
+ return data
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def save_csv(data, file_path):
|
|
|
|
|
+ """
|
|
|
|
|
+ 将数据保存为CSV文件
|
|
|
|
|
+ :param data: 需要保存的数据列表
|
|
|
|
|
+ :param file_path: 保存的文件路径
|
|
|
|
|
+ """
|
|
|
|
|
+ with open(file_path, mode='w', newline='', encoding='utf-8') as file:
|
|
|
|
|
+ writer = csv.writer(file)
|
|
|
|
|
+ writer.writerows(data)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def process_csv(input_file, output_file, column_index, target_language='zh'):
|
|
|
|
|
+ """
|
|
|
|
|
+ 处理CSV文件的主要函数
|
|
|
|
|
+ :param input_file: 输入的CSV文件路径
|
|
|
|
|
+ :param output_file: 输出的CSV文件路径
|
|
|
|
|
+ :param column_index: 需要插入空列的列索引
|
|
|
|
|
+ :param target_language: 目标语言,默认为中文
|
|
|
|
|
+ """
|
|
|
|
|
+ # 读取CSV文件
|
|
|
|
|
+ data = read_csv(input_file)
|
|
|
|
|
+
|
|
|
|
|
+ # 插入空列
|
|
|
|
|
+ data = insert_empty_column(data, column_index)
|
|
|
|
|
+
|
|
|
|
|
+ # 翻译第二列的文本
|
|
|
|
|
+ data = translate_column(data, column_index, target_language)
|
|
|
|
|
+
|
|
|
|
|
+ # 保存为新文件
|
|
|
|
|
+ save_csv(data, output_file)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+# 测试代码
|
|
|
|
|
+if __name__ == "__main__":
|
|
|
|
|
+ input_file = "C:\\Users\\74262\\Desktop\\excel\\18.JP家具.csv"
|
|
|
|
|
+ output_file = "C:\\Users\\74262\\Desktop\\excel\\18.JP家具_processed.csv"
|
|
|
|
|
+ column_index = 2 # 插入空列的列索引(第2列)
|
|
|
|
|
+
|
|
|
|
|
+ process_csv(input_file, output_file, column_index)
|
|
|
|
|
+```
|
|
|
|
|
+编码规范:
|
|
|
|
|
+- 要求每个要求都要模块化处理,遵循高内聚、低耦合编码规范,用函数封装,最小化封装的代码量。
|
|
|
|
|
+
|
|
|
|
|
+实现功能:
|
|
|
|
|
+1. 表格文件: "C:\Users\74262\Desktop\excel\18.JP家具.csv"
|
|
|
|
|
+2. 将表格第N列往右插入一空列。N是传参,测试代码为第2列。但不要修改原文件,保存为另一个文件
|
|
|
|
|
+3. 将第N列中的文字,翻译成另一种语言,默认中文。保存到 column_index +1 列中,允许指定从 哪一行开始翻译,测试从第二行。翻译使用一个函数封装,暂不使用翻译器,代码使用一个测试文本作为翻译结果。
|
|
|
|
|
+
|
|
|
|
|
+完成步骤3
|