栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

用Python随机挖空文本供填空使用

Python 更新时间:发布时间: 百科书网 趣学号
python [py文件名] [难度] [处理文本对象文件名]
::python 随机挖空文本.py 1 input.md

处理文本对象文件名fileName,默认为input.md

难度difficulty,取值0、1、2、3(默认为0),分别对应挖空比例inter的25%、50%、75%、100%

分隔符seq,以分隔符作为依据划分文本,下述代码中以常见全角符号为例

排除项exc,意为忽略匹配该正则表达式的行

保留项res,意为挖空文本时,保留该正则表达式匹配的行开头prefix

import sys
import random
import re

fileName='input.md'

if(len(sys.argv)>1):
    difficulty=sys.argv[1]

    if(len(sys.argv)==3):
        fileName=sys.argv[2]
        
else:
    difficulty=0

#difficulty意为难度,代表挖空的比例,0:25%,1:50%,2:75%,3:100%

content=open(fileName,'r',encoding='utf-8')
with open('output.md',"w",encoding='utf-8') as f:
    for line in content:
        sep='[,。;!?、]'      
        exc='[#]'
        res='[0-9+-][.]'
        lineArr=re.split(sep,line)
        
        inter=(int(difficulty)+1)*0.25
        
        for i in range(0,len(lineArr)):
            
            if(lineArr[i]=='n'):
                continue
            if(re.match(exc,line) is not None):
                continue
            
            elif(random.random()<=inter):
                if(len(lineArr[i])>2 and re.match(res,lineArr[i][0:3])):
                    prefix=lineArr[i][0:3]
                else:
                    prefix=''
                lineArr[i]=prefix+'('+''.rjust(len(lineArr[i])).replace(' ',' ')+')'

        line=','.join(lineArr)
        f.write(line)
                
    f.flush() # 写入硬盘            
    f.close() #关闭文件,并刷新           
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/987061.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号