注意:本文章只负责救急用,不会有任何的讲解

有什么不懂的请先看注释,再进行理解。

!非常重要:本代码无法识别一行中的多个“中国”,即只知道至少有一个,不会知道有多少个!!

题目如下:

在指定目录(如 abc )下创建若干子目录和 txt 文件,txt 中若干行含有关键字“中国”。

编写程序:统计该目录下含有“中国”的txt 文件,以及文件中含“中国”的行序号;

简易思路:

指定文件夹和文件名,找出指定的txt文件,逐行读取内容,判断字符串

源代码如下:

import os
from re import A

# 定义一个内容信息
def mes(i):
    mes = ["中华人民共和国(the People's Republic of China),简称“中国”,成立于1949年10月1日,\n"
            "位于亚洲东部,太平洋西岸,是工人阶级领导的、以工农联盟为基础的人民民主专政的社会\n"
            "主义国家,以五星红旗为国旗、《义勇军进行曲》为国歌 ,国徽内容为国旗、天安门、齿轮\n"
            "和麦稻穗,通用语言文字是普通话和规范汉字,首都北京,是一个以汉族为主体、56个民\n"
            "族共同组成的统一的多民族国家。",
            "中国陆地面积约960万平方千米,东部和南部大陆海岸线1.8万多千米,内海和边海的水域\n"
            "面积约470多万平方千米。海域分布有大小岛屿7600多个,其中台湾岛最大,面积35798\n"
            "平方千米。中国同14国接壤,与8国海上相邻。省级行政区划为23个省、5个自治区、4\n"
            "个直辖市、2个特别行政区。",
            "test1",
            "  ",
            "中国是世界上历史最悠久的国家之一,有着光辉灿烂的文化和光荣的革命传统 [3]  ,世界\n"
            "遗产数量全球领先。1949年新中国成立后,进入社会主义革命和建设时期,1956年实现向\n"
            "社会主义过渡,此后社会主义建设在探索中曲折发展。“文化大革命”结束后实行改革开放,\n"
            "沿着中国特色社会主义道路,集中力量进行社会主义现代化建设 [3]  。经过长期努力,中\n"
            "国特色社会主义进入了新时代。",
            "test2",
            "中国是世界上人口最多的发展中国家,国土面积居世界第三位,是世界第二大经济体,并持\n"
            "续成为世界经济增长最大的贡献者,2020年经济总量突破100万亿元。中国坚持独立自主\n"
            "的和平外交政策,中国是联合国安全理事会常任理事国,也是许多国际组织的重要成员,被认为\n"
            "是潜在超级大国之一。"
    ]
    return mes[i]

# 创建一个txt文件,文件名为test,并向文件写入meg
def text_create(name,meg):          # path:新创建的txt文件的存放路径
    savepath = name + '.txt'      # 也可以创建一个.doc的word文档
    file = open(savepath,'w')
    file.write(meg)               # 写入mes函数中的内容
    file.close()

# 批量创建文件,i:创建文件数
def create_text(i):
    for a in range(i):
        b = str(a)
        name = "test" + b
        msg = mes(a)
        text_create(name,msg)
    print("创建成功!")

# 查询中国是否在txt中
def search(list1):
    str2 = list1
    str1 = "中国"
    if str1 in str2:
        return 1             # 存储行号
    else:
        return 0

# 读取文件,完成查找工作
def read_text(i):                      
    list3 = []                             # 存储文件信息
    for a in range(i):                      # 采用一个一个文件读取
        b = str(a)
        filename = "test" + b + '.txt'
        with open(filename,"r") as file :      # filename 对象可迭代 
            i = 0                             # 初始化 i
            list2 = []
            for line in file:                  # 逐行读取文件内容:回车为分隔符
                i += 1
                a = search(line)
                if a == 1:
                    list2.append(i)
                else:
                    list2.append(0)
        list3.append(list2)
    return list3
                

if __name__ == "__main__":
    os.chdir("test3")       # 改变路径到test3文件夹
    print("改变当前工作路径后:",os.getcwd())
    while True:
        ch = input("1.批量创建文件.\n2.统计该目录下含有“中国”的txt 文件,以及文件中含“中国”的行和序号\n3.退出程序.\n请选择功能:")
        if ch == '1':
            create_text(7)            # 批量创建文件
        elif ch == '2':
            list11 = read_text(7)
            b = 0
            for i in list11:
                list22 = []               # 存放行号
                a = 0
                for j in range(len(i)):
                    if j > 0:
                        list22.append(j)
                        a += 1
                    else:
                        a = a
                if a == 0:
                    print("test%d该txt文件没有包含“中国”二字。"%(b))
                else:
                    print("test%d该txt文件包含“中国”二字!"%(b))
                    for s in range(len(list22)):
                        a = list22[s]
                        print("在第%d行!"%(a))
                b += 1
                print()
        elif ch == '3':
            break                       # 退出
        else:
            print("请输入正确的数字!!!")
        print()