|
|
@@ -45,6 +45,7 @@ def safe_names(cols: list[str]) -> list[str]:
|
|
|
out, seen = [], {}
|
|
|
for i, c in enumerate(cols):
|
|
|
c = c.lstrip('\ufeff') # ★ 源 CSV 表头带 UTF-8 BOM ⇒ 不清掉会被净化成 _TimeStamp(实测)
|
|
|
+ n = re.sub(r'[^0-9A-Za-z_\u4e00-\u9fff]', '_', c)[:60] or f'c{i}'
|
|
|
if n in seen:
|
|
|
seen[n] += 1
|
|
|
n = f'{n[:56]}_{seen[n]}'
|