• Python二级考试-综合应用题(对网络版的《论语》txt文件进行提纯)


    网络版《论语》内容比较齐全,包含了原文内容和注释内容,而原文内容又包含了序号符号!这是一题比较简单的应用题,只涉及到TXT文件的读写!解决思路也比较清晰明了。

    题目:

    原文件如下图所示:

    问题1:

    分析问题:题目要求就是对“论语.txt”文件进行提纯,把空格,“【原文】”和“【注释】”以及注释内容去掉,并写入新的文件“论语-原文.txt”。注意:收尾空格要去掉。

    解决思路:

    1,用open函数打开源文件,并用readlines函数逐行读取文件内容,这里返回列表类型,每一行为列表的一个元素。

    2,遍历列表,对每一个列表中的元素用strip函数和replace函数分别去掉换行符“ ”和收尾空格(因为源文件有些行为空,读取的时候任会有“ ”,这样去掉换行符方便后面处理)。

    3,去掉换行符和收尾空格后,我们就可以观察当前文件内容(可以输出查看),不难发现除了原文内容,其他行第一个字符要么是“【”就是“(”,这样我们就可以用if语句进行筛选。

    4,对筛选的内容写入新的文件即可。

    代码实现:

    # !/usr/bin/env python
    # -*- encoding:utf-8 -*-
    # 作者:赖正华
    
    def read_files():
        """读取文件"""
        files = open("C:\WEXAM\000000000000\论语.txt","r",encoding="gbk") # 文件位置以文件所在位置为准
        txts = files.readlines()
        n = 0
        for txt in txts:   # 也可以直接遍历files,效果是一样的。
            new_txt = txt.strip('
    ').replace(' ','')
            if new_txt and new_txt[0] != '' and new_txt[0] != '(':
                n += 1
                write_files(new_txt + "
    ")
                print("第{}句写入成功!".format(n))
        files.close()
    def write_files(strs):
        """写入文件"""
        files = open("C:\WEXAM\000000000000\论语-原文.txt","a+",encoding="gbk")    # 文件位置以文件所在位置为准

    files.write(strs)
        files.close() 

    if __name__ == "__main__":
    read_files()

    print("操作成功!")

    另一种解决思路:

    files = open("C:\Users\赖正华\Desktop\论语.txt","r",encoding="utf-8")
    lines = files.readlines()
    num = 1
    for line in lines:   # 也可以直接遍历files,效果是一样的。
        line = line.strip('
    ').replace(' ','')
        if line and num == 1 and line.count("【原文】") == 0  and line.count("【注释】") == 0:
            print(line)
        if line.count("【原文】") > 0:
            num = 1
        if line.count("【注释】") > 0:
            num = 0
    files.close()
    
    # 输出内容如下:
    # 子曰(1):“学(2)而时习(3)之,不亦说(4)乎?有朋(5)自远方来,不亦乐(6)乎?人不知(7),而不愠(8),不亦君子(9)乎?”

    问题2:

    分析问题:题目要求就是对问题一写入的新文件“论语-原文.txt”进一步提纯,也就是去掉每行文字中所有小括号及内部数字,并写入新的文件“论语-提纯原文.txt”。

    解决思路:

    1,用open函数打开源文件,并用readlines函数逐行读取文件内容,这里返回列表类型,每一行为列表的一个元素。

    2,也是遍历列表,用strip函数或replace函数去除即可,这里我用replace函数。

    3,对写好的内容写入新的文件即可。

    代码实现:

    # !/usr/bin/env python
    # -*- encoding:utf-8
    # 作者:赖正华
    
    def read_files():
        """读取文件"""
        with open("C:\WEXAM\000000000000\论语-原文.txt","r",encoding="gbk") as files:
            lines = files.readlines()
            n = 0
            for line in lines:   # 也可以直接遍历files,效果是一样的。
                n += 1
                for i in range(1,11):
                    s = '(' + str(i) + ')'
                    line = line.replace(s,'')
                write_files(line)
                print("第{}行写入成功!".format(n))
    
    def write_files(strs):
        """写入文件"""
        with open("C:\WEXAM\000000000000\论语-提纯原文.txt","a+",encoding="gbk") as files:
            files.write(strs)
    if __name__ == "__main__":
        read_files()
        print("操作成功!")
    学习没有捷径,需要日积月累的积淀及对技术的热爱。
  • 相关阅读:
    第三篇:一个Spark推荐系统引擎的实现
    第二篇:使用Spark对MovieLens的特征进行提取
    第一篇:使用Spark探索经典数据集MovieLens
    第十一篇:Map/Reduce 工作机制分析
    docker 导入导出镜像
    pycharm激活
    jenkins + sonar 安装配置
    jenkins webhook 配置
    python3 学习
    Kubernetes 详解
  • 原文地址:https://www.cnblogs.com/laizhenghua/p/lunyu.html
Copyright © 2020-2023  润新知