使用 python 在 Wikitable 中自动递增
Auto Increment in wikitable using python
我有 wikitable 格式的 mediawiki 用户统计数据,这些数据是通过 sql 查询生成的。
现在我想替换第一列和每一行中存在的所有 #
以自动递增数字,即使用 python 脚本从第一行开始的 1,2,3,4。
知道如何完成这个任务吗?
可维基格式的数据:
matter = """{| class="wikitable"
!number!!user_id!!user_name!!byte_count!!edit_count
|-
|#||19745||[[user:abc|abc]]||37294210.0||83282
|-
|#||21818||[[user:abc|abc]]||3420248.0||121794
|-
|#||21548||[[user:abc|abc]]||2515274.0||32799
|}"""
with open("wikit.txt", 'w') as f:
f.write(matter)
with open('wikit.txt', 'r') as f:
m = f.read()
print(m)
尚未测试,但它应该适合您
with open('wikit.txt', 'r') as f:
lines = f.readlines()
newlines =[]
line_num=1
for line in lines:
newlines.append(line.replace("#",str(line_num)))
if "#" in line:
line_num+=1
newlines_str='\n'.join(line for line in newlines)
with open("wikit.txt", 'w') as f:
f.write(newlines_str)
我有 wikitable 格式的 mediawiki 用户统计数据,这些数据是通过 sql 查询生成的。
现在我想替换第一列和每一行中存在的所有 #
以自动递增数字,即使用 python 脚本从第一行开始的 1,2,3,4。
知道如何完成这个任务吗?
可维基格式的数据:
matter = """{| class="wikitable"
!number!!user_id!!user_name!!byte_count!!edit_count
|-
|#||19745||[[user:abc|abc]]||37294210.0||83282
|-
|#||21818||[[user:abc|abc]]||3420248.0||121794
|-
|#||21548||[[user:abc|abc]]||2515274.0||32799
|}"""
with open("wikit.txt", 'w') as f:
f.write(matter)
with open('wikit.txt', 'r') as f:
m = f.read()
print(m)
尚未测试,但它应该适合您
with open('wikit.txt', 'r') as f:
lines = f.readlines()
newlines =[]
line_num=1
for line in lines:
newlines.append(line.replace("#",str(line_num)))
if "#" in line:
line_num+=1
newlines_str='\n'.join(line for line in newlines)
with open("wikit.txt", 'w') as f:
f.write(newlines_str)