本文目录导读:

的批量转换,脚本的选择取决于你的具体场景(如数据库、CSV文件、Excel等),以下是几种常见的批量转换脚本方案:
Python脚本(最灵活通用)
处理CSV/Excel文件
import pandas as pd
# 读取文件
df = pd.read_csv('input.csv')
# 批量转换某列:将日期格式统一
df['date'] = pd.to_datetime(df['date']).dt.strftime('%Y-%m-%d')
# 批量替换内容
df['status'] = df['status'].replace({
'pending': '待处理',
'completed': '已完成',
'failed': '失败'
})
# 批量大小写转换
df['name'] = df['name'].str.upper() # 转大写
# df['name'] = df['name'].str.lower() # 转小写
# 保存结果
df.to_csv('output.csv', index=False)
处理数据库字段
import sqlite3
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
# 批量更新字段内容
cursor.execute("""
UPDATE users
SET email = LOWER(email),
status = CASE status
WHEN 'active' THEN '活跃'
WHEN 'inactive' THEN '不活跃'
END
""")
conn.commit()
conn.close()
Shell脚本(Linux/Mac环境)
使用sed批量替换
# 替换CSV中所有行的第3列 sed -i 's/,old_value,/,new_value,/g' file.csv # 批量转换大小写 cat file.txt | tr 'a-z' 'A-Z' > output.txt
使用awk处理字段
# 将第2列转换为大写
awk -F',' '{$2=toupper($2); print}' OFS=',' file.csv > output.csv
# 条件替换
awk -F',' '{if($3=="old") $3="new"; print}' OFS=',' file.csv
SQL脚本(数据库批量处理)
-- 批量替换内容
UPDATE products
SET category = REPLACE(category, 'Electronics', '电子');
-- 批量大小写转换
UPDATE users
SET username = UPPER(username);
-- 带条件的批量更新
UPDATE orders
SET status = CASE
WHEN order_date < '2023-01-01' THEN '历史订单'
WHEN status = 'pending' THEN '待发货'
ELSE status
END;
-- 数值转换(如将美元转为人民币)
UPDATE products
SET price = price * 6.8
WHERE currency = 'USD';
使用jq处理JSON字段
# 转换JSON中所有值的类型 cat data.json | jq 'map(.age |= tonumber)' > output.json # 批量重命名字段 cat data.json | jq 'map(.fullname = .name | del(.name))' > output.json
Node.js脚本(Web开发者常用)
const fs = require('fs');
// 读取JSON文件并批量转换
let data = JSON.parse(fs.readFileSync('input.json', 'utf8'));
data = data.map(item => ({
...item,
date: new Date(item.date).toISOString().split('T')[0],
price: Math.round(item.price * 100) / 100
}));
fs.writeFileSync('output.json', JSON.stringify(data, null, 2));
实际应用场景示例
场景1:Excel中的日期格式统一
import pandas as pd
# 假设日期列有多种格式,统一为YYYY-MM-DD
df['date'] = pd.to_datetime(df['date'], errors='coerce').dt.strftime('%Y-%m-%d')
场景2:数据库中的手机号脱敏
UPDATE users SET phone = CONCAT(LEFT(phone, 3), '****', RIGHT(phone, 4)) WHERE LENGTH(phone) = 11;
场景3:批量编码转换(如GBK转UTF-8)
# 批量转换文件编码
find . -name "*.csv" -exec iconv -f GBK -t UTF-8 {} -o {}.utf8 \;
选择建议
| 场景 | 推荐工具 | 原因 |
|---|---|---|
| 简单替换 | sed/awk | 单行命令,快速 |
| 复杂逻辑 | Python | 灵活性最高 |
| 数据库操作 | SQL | 原生支持,性能好 |
| JSON处理 | jq | 专门处理JSON |
| Web项目 | Node.js | 和前端生态一致 |
如果你能提供更具体的使用场景(如:处理什么格式的数据、需要什么类型的转换、数据量大小等),我可以给出更精准的脚本方案。