You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于DD.MM.YY日期批量修改CSV中Aktiv字段值?

解决CSV中按自定义日期格式批量修改Aktiv字段的问题

方法一:用Python脚本直接处理CSV(推荐)

这种方式无需依赖数据库,直接对CSV文件做修改,适配2500-4000行的规模,灵活且不易出错。

import csv
from datetime import datetime, timedelta

# 计算30天前的基准日期
cutoff_date = datetime.now() - timedelta(days=30)

# 替换成你的输入输出文件路径
input_csv = "source.csv"
output_csv = "processed.csv"

with open(input_csv, 'r', encoding='utf-8') as infile, \
     open(output_csv, 'w', encoding='utf-8', newline='') as outfile:
    
    # 用分号作为分隔符读取CSV
    reader = csv.DictReader(infile, delimiter=';')
    writer = csv.DictWriter(outfile, fieldnames=reader.fieldnames, delimiter=';')
    
    writer.writeheader()
    
    for row in reader:
        try:
            # 把DD.MM.YY格式的字符串转成datetime对象
            last_chan = datetime.strptime(row['LastChan'], '%d.%m.%y')
            # 满足条件则修改Aktiv字段
            if last_chan < cutoff_date and row['Aktiv'] == 'true':
                row['Aktiv'] = 'false'
        except ValueError:
            # 遇到格式错误的日期时跳过修改(可根据需求调整逻辑)
            pass
        
        writer.writerow(row)

脚本说明:

  • 自动保留原CSV的表头和所有字段
  • 处理过程中会跳过格式无效的日期行,避免脚本崩溃
  • 仅修改符合条件的Aktiv字段,其他行保持原样

方法二:导入SQLite后处理日期格式问题

如果一定要用SQLite处理,可以先导入CSV,再通过SQL函数将自定义日期格式转换为标准格式后执行更新。

步骤1:创建SQLite表并导入CSV

用sqlite3命令行工具执行以下操作:

-- 创建表结构
CREATE TABLE assets (
    SAP_Nu TEXT,
    Name TEXT,
    Version TEXT,
    Typ TEXT,
    Aktiv TEXT,
    IP TEXT,
    Srv TEXT,
    LastChan TEXT
);

-- 导入CSV(注意替换文件路径)
.mode csv
.separator ';'
.import source.csv assets

步骤2:执行更新语句

通过字符串拆分将DD.MM.YY转换为YYYY-MM-DD格式,再比较日期:

UPDATE assets
SET Aktiv = 'false'
WHERE Aktiv = 'true'
AND DATE(
    '20' || SUBSTR(LastChan, 7, 2) || '-' || SUBSTR(LastChan, 4, 2) || '-' || SUBSTR(LastChan, 1, 2)
) < DATE('now', '-30 days');

注意事项:

  • 假设LastChan的年份是2000年后的(即YY对应20YY),如果包含19xx的年份,需要调整年份拼接逻辑
  • 导入时确保CSV的分隔符是分号,和创建表时的设置一致

内容的提问来源于stack exchange,提问作者Petersenf87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 00:35:27