# -*- coding:utf-8 -*-
import os.path , os , re
# 原文件名: [yy1990]vs[菜刀乄]1581657280010001462.sgf
# 目标文件名: [让子0][白胜][菜刀乄][yy1990][2020-02-14-1462].sgf
# 脚本和下载棋谱在同一个目录,脚本运行后将遍历,改名。仅支持野狐棋谱格式
# 对局者胜方在前
for old_name in os.listdir('.'):
if not re.search("_已分析_",old_name) and (old_name[-4:]==".sgf" or old_name[-4:]== ".SGF" )and not old_name[0:3] == '[让子' :
print(old_name)
file_object=open(old_name,'r',encoding='utf-8')
ff = file_object.read()
fflen=len(ff)
file_object.close()
aa = 0
# 以下假设格式顺序固定 如碰到其他顺序 程序出错 可以用每段重置aa防止顺序错误
# DT[ 时间
while fflen > aa and ff[aa:aa+3] != "DT[":
aa = aa + 1
aa = aa + 3
ll = 0
time_name = ''
while fflen > (aa + ll) and ff[aa + ll] != "]":
ll = ll + 1
time_name=ff[aa:aa+ll]
aa=0
# PB[ 黑方
while fflen>aa and ff[aa:aa+3] != "PB[" : aa=aa+1
aa=aa+3
ll=0
pb_name=''
while fflen > (aa + ll) and ff[aa + ll] != "]":
ll = ll + 1
pb_name = ff[aa:aa+ll]
aa=0
# PW[ 白方
while fflen>aa and ff[aa:aa+3] != "PW[":
aa=aa+1
aa = aa+3
ll = 0
pw_name=''
while fflen>(aa+ll) and ff[aa+ll]!="]" :
ll=ll+1
pw_name=ff[aa:aa+ll]
aa=0
# HA[ 让子
while fflen>aa and ff[aa:aa+3]!="HA[" : aa=aa+1
aa=aa+3
ll=0
while fflen>aa+ll and ff[aa+ll]!="]" : ll=ll+1
ha_name=ff[aa:aa+ll]
aa=0
# RE[ 胜负 和棋及其他算白胜
while fflen>aa and ff[aa:aa+3] != "RE[" : aa=aa+1
aa = aa+3
ll=0
while fflen > aa+ll and ff[aa+ll] != "]" : ll=ll+1
re_name=ff[aa:aa+ll]
bw_name=""
if re_name[0] == "b" or re_name[0] == "B" or re_name[0] == "黑":
bw_name="[让子" + ha_name + "][黑胜][" + pb_name + "][" + pw_name + "][" + time_name + "]["
else :
bw_name="[让子" + ha_name + "][白胜][" + pw_name + "][" + pb_name + "][" + time_name + "]["
if len(re_name)>0 :
print(bw_name+old_name[-8:]+"].sgf")
os.rename(old_name, bw_name + old_name[-18:-14] + "].sgf")
--
修改:computec FROM 222.129.7.*
FROM 222.129.7.*