考生文件夹下存在2个Python源文件和3个文本文件,分别对应两个问题,请按照文件内说明修改代码,实现以下功能: 《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子言行。这里给出了一个网络版本的《论语》,文件名称为“论语.txt”,其内容采用

admin2020-04-10  46

问题 考生文件夹下存在2个Python源文件和3个文本文件,分别对应两个问题,请按照文件内说明修改代码,实现以下功能:
    《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子言行。这里给出了一个网络版本的《论语》,文件名称为“论语.txt”,其内容采用逐句“原文”与逐句“注释”相结合的形式组织,通过【原文】标记《论语》原文内容,通过【注释】标记《论语》注释内容,具体文件格式框架请参考“论语.txt”文件。
    问题1:在PY301—1.py文件中修改代码,提取“论语.txt”文件中的原文内容,输出保存到考生文件夹下,文件名为“论语一原文.txt”。具体要求:仅保留“论语.txt”文件中所有【原文】标签下面的内容,不保留标签,并去掉每行行首空格及行尾空格,无空行。原文小括号及内部数字是源文件中注释项的标记,请保留。示例输出文件格式请参考“论语一原文一输出示例.txt”文件。注意:示例输出文件仅帮助考生了解输出格式,不作它用。
    试题程序:
    #以下代码为提示框架
    #请在程序的…处使用一行或多行代码替换
    #请在程序的______处使用一行代码替换
    #注意:提示框架代码可以任意修改,以完成程序功能为准
    fi=open(”论语.txt”,_______)
    fo=open(”论语一原文.txt”,________)
    …
for line in fi:
    …
       fo.write(line.istrip())
    …
    问题2:在PY301-2.py文件中修改代码,对“论语一原文.txt”或“论语.txt”文件进一步提纯,去掉每行文字中所有小括号及内部数字,保存为“论语一提纯原文.txt”文件。示例输出文件格式请参考“论语一提纯原文一输出示例.tXt”文件。注意:示例输出文件仅帮助考生了解输出格式,不作它用。
    试题程序:
    #以下代码为提示框架
    #请在程序的…处使用一行或多行代码替换
    #请在程序的______处使用一行代码替换
    #注意:提示框架代码可以任意修改,以完成程序功能为准
    fi=open(”论语一原文.txt”,________)
    fo=open(”论语一提纯原文.txt”,_________)
    …
    for line in fi:
    …
          line=line.replace(________)
    …

选项

答案(1)fi=open(”论语.txt”,"r") fo=open(”论语一原文.txt”,"w") flag = False for line in fi: if "【" in line: flag = False if "【原文】"in line flag = True continue if flag = = True fo.write(line.lstrip()) fi.close() fo.close (2) fi=open(”论语一原文.txt”,’r’) fo=open(”论语一提纯原文.txt”,’w’) for line in fi: for i in range(1,23): line=line.replace("({})",format(i),“”) fo.write(line) fi.close() fo.close()

解析 (1)题目要求从“论语.txt”文件中提取内容,输出保存到文件“论语一原文.txt”中,因此需要用”r”模式打开“论语.txt”,用”w”模式创建文件“论语一原文.txt”。
    本题要求区域性提取,与单行提取不同,因此,可以借助写标记flag来标记操作的是哪里的文本。使用for循环遍历“论语.txt”中的每一行,当该行存在【时,说明已经到了新的区域,写标记置为否flag=False;当该行存在【原文】时,写标记置为True;当判断写标记为True时,就将当前行内容写入新的文件”论语一原文.txt”中。对文件操作完成后,使用close()函数关闭文件。
    (2)题目要求对“论语一原文.txt”进一步提纯,保存为“论语一提纯原文.txt”文件,因此需要用”r”模式打开“论语一原文.txt”,用”w”模式创建文件“论语一提纯原文.txt”。
    题目要求去掉每行文字中所有小括号及内部数字,可在for循环遍历“论语一原文.txt”文件中的每一行时,用空来代替出现的“(数字)”形式。分析“论语一原文.txt”文件可知,其中出现“(1)”~“(22)”共22种可能,因此内部嵌套for循环需要从1遍历到22,构造“(i)”并替换。替换后将该行内容写入到文件“论语一提纯原文.txt”中。对文件操作完成后,使用close()函数关闭文件。
转载请注明原文地址:https://kaotiyun.com/show/6M6p777K
0

最新回复(0)