辅助程序

编辑辅助程序是一个用于快速编辑fandom的源代码时的python辅助程序。

## 自动拆分表格

### 使用方法

1. 创建一个python文件，然后复制以下程序代码到该文件并保存。
2. 在同级目录下创建一个文本文档，将需要处理的表格的源代码复制进入该文本文档，然后保存并关闭。
3. 运行之前创建的python文件，输入之前创建的文本文档的名称和后缀名，点击回车。
4. 出现完成提示语表示表格拆分完成，打开之前的文本文档，将里面的内容复制回fandom对应页面的源代码中。
5. 若python出现任何类型报错提示或有更好的建议请在评论区反馈。

### 常见问题

以下类型的表格使用该程序可能发生结果错误或者python报错。

1. 不完整、不合法、结构混乱、有空缺单元格、非结构性回车的表格。
2. 在标题行中使用了合并功能的表格。
3. 使用了fandom中的nowiki代码的表格。
4. ~~在表格源代码中使用了链接或者模板功能的表格.~~（修复完成）
5. ~~复制上了除表格源代码以外其他的代码.~~（修复完成）

### 全部代码

由于换行符的显示问题，请打开源代码编辑后再复制代码。

print('欢迎使用拆分程序')
a=input('输入表格文件名称')
with open(a,'r',encoding='utf-8') as f\_obj:
 readthings=f\_obj.read()
allsd2=[]
last0=readthings
while len(last0.split('{|',1))==2:
 form=last0.split('{|',1)[1].split('|}',1)[0]
 first0=last0.split('{|',1)[0]
 last0=last0.split('|}',1)[1]
 x='colspan'
 y='rowspan'
 if x not in form and y not in form:
 allsd2.append(first0+'{|'+form+'|}')
 continue
 form=form.replace('\n|','||')
 form=form.replace('\n!','!!')
 form=form.replace('||-!!','|-!')
 form=form.replace('\n\n','</br>')
 form=form.replace('\n','')
 form=form.replace('\t','')
 tem=[]
 link=[]
 temnum=0
 linknum=0
 while len(form.split('{{',1))==2:
 temnum+=1
 fz0=form.split('{{',1)[1].split('}}',1)[0]
 tem.append(['{{'+fz0+'}}',temnum])
 form=form.replace('{{'+fz0+'}}','\n'+str(temnum))
 while len(form.split('[[',1))==2:
 linknum+=1
 fz0=form.split('[[',1)[1].split(']]',1)[0]
 link.append(['[['+fz0+']]',linknum])
 form=form.replace('[['+fz0+']]','\t'+str(linknum))
 fz=form.split('|-')
 first='{|'+fz.pop(0)
 s2=first.split('!!')
 s3=[]
 for ii in s2:
 s3.extend(ii.split('||'))
 lenfirst=len(s3)-1
 last='\n|}'
 row=[]
 i2='!'+i
 i2=i2.split('!!')
 i3=[]
 for ii in i2:
 i3.extend(ii.split('||'))
 del i3[0]
 row.append(i3)
 if i[0]=='|':
 i2='|'+i
 i2=i2.split('||')
 i3=[]
 for ii in i2:
 i3.extend(ii.split('!!'))
 del i3[0]
 row.append(i3)
 ln=len(row)
 allnum=ln\*lenfirst
 datas=[]
 datas.append(row[i][ii])
 newdatas=[]
 numdatas=[]
 for i in datas:
 i2=i.split('|')
 numdatas.append(nums)
 newdatas.append([nums,i2[0]])
 break
 elif len(i2)==2:
 iii=i2[0]
 data=i2[1]
 num=''
 num+=iiii
 num=int(num)
 numdatas.append(nums+iiiii)
 newdatas.append([nums+iiiii,data])
 else:
 numdatas.append(nums+iiiii\*lenfirst)
 newdatas.append([nums+iiiii\*lenfirst,data])
 break
 elif len(i2)==3:
 iii1=i2[0]
 iii2=i2[1]
 if y in iii1:
 iii2,iii2=iii2,iii1
 data=i2[2]
 numx=''
 numx+=iiii
 numx=int(numx)
 numy=''
 numy+=iiii
 numy=int(numy)
 numdatas.append(nums+iiiiix+iiiiiy\*lenfirst)
 newdatas.append([nums+iiiiix+iiiiiy\*lenfirst,data])
 break
 sortdatas=[]
 for i in range(0,allnum):
 sortdatas.append(0)
 for i in newdatas:
 sortdatas[i[0]-1]=i[1]
 sd2=[]
 for i in range(0,len(sortdatas),lenfirst):
 sd2.append(sortdatas[i:i+lenfirst])
 sep1='||'
 for i in range(0,len(sd2)):
 sd2[i]=sep1.join(sd2[i])
 sep2='|-|'
 sd2=sep2.join(sd2)
 sd2=sd2.replace('\n'+str(i[1]),i[0])
 sd2=sd2.replace('\t'+str(i[1]),i[0])
 sep2='\n|-\n|'
 sd2=sd2.replace('|-|',sep2)
 f0=first.split('!!',1)
 if len(f0[0].split('||',1))==1:
 f2=f0[0]
 f3=f0[1]
 first=f2+'\n!'+f3
 else:
 f2=f0[0].split('||',1)[0]
 f3=f0[0].split('||',1)[1]+f0[1]
 first=f2+'\n|'+f3
 allsd2.append(first0+first+sep2+sd2+last)
else:
 allsd2.append(last0)
 sep=''
 finish=sep.join(allsd2)
if finish!=readthings:
 with open(a,'w',encoding='utf-8') as f\_obj:
 f\_obj.write(finish)
 print('已完成表格的拆分')
else:
 print('未发现或无法拆分')