注意:本文章只负责救急用,不会有任何的讲解
有什么不懂的请先看注释,再进行理解。
!非常重要:本代码无法识别一行中的多个“中国”,即只知道至少有一个,不会知道有多少个!!
题目如下:
在指定目录(如 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()