基于Python的删除子串处理案例

  • 问题描述

在做自然语言处理时,经常遇到从文本文件中读取字符串,并删除其中不需要的内容。本案例给出一种基于Python的处理方法,删除读取到的文本数据中具有规律性但是不需要的数据。基本流程为:读取文本文件(每一行存储一条文本数据),删除每个字符串开头部分的子串,再删除中间某一段子串,最后把清理后的字符串写入一个文本文件。

  • 算法实现
#读取文本文件
def ReadTxtFile( fileName ):
    with open( fileName, mode = 'r', encoding = 'utf-8' ) as fp:
        lineNum = 0
        dataTxt = []
        for line in fp:
            if lineNum < 5: #只读取前5行
                lineNum += 1
                dataTxt.append( line )
            else:
                break
    return dataTxt, lineNum
#删除不需要的子串
def DeletePartTxtData( dataTxt, lineNum ):
    data = []
    ind = 0
    txt =[]
    for i in range( lineNum ):
        txt = str( dataTxt[i] )
        ind = txt.find( 'English' )
        txt1 = txt[ ind-1 : ]
        ind1 = txt1.find( 'http' )
        ind2 = txt1.find( 'end' )
        txt2 = txt1[ : ind1 ] + txt1[ ind2 + 6 :]
        data.append( txt2 )
            
    return data

#读取文本文件,删除不需要的子串后存储到新的文本文件
def ReadWriteTxtFile( fReadName, fWriteName ):
    data, lineNum = ReadTxtFile( fReadName )
    dataTxt = DeletePartTxtData( data, lineNum )
    with open( fWriteName, mode = 'w', encoding = 'utf-8' ) as fp:
        strdata = []
        for i in range( lineNum ):
            strdata = '[' + str(i+1) + ']' + '.' + dataTxt[i]
            fp.write( strdata )

def main():
    ReadWriteTxtFile( 'InitialTxtData.txt', 'TxtData.txt' )
    print( 'over' )

if __name__ == '__main__':
    main()
  • 附件

1.InitiTxtData.txt

2.TxtData.txt

 作者:YangYF

发布了145 篇原创文章 · 获赞 213 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/s0302017/article/details/103763868