|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
有文档1.txt如下:
@1234567890000
aaabbbcccdddeee
+
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
@23456789011111
bbbcccdddeeehhh
+
ssssssssssssssssssss
@33333333222222
cccaaadddeeebbb
+
gggggggggggggg
下面还有很多这样的数据.........
这个文件里(@1234567890000为第一行,jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj为第四行)为一个小组(后面还有很多这样的数据),当这个小组中的第二行满足条件有‘aaa’和‘bbb’时打印这个小组,同事写进文档2.txt。
我实验过了,可以的,处理catrl + c什么的细节方面我就没弄了
代码如下,注释也写好了,不懂可以追问
- def obtenir_list(file_name): # 该函数用于获得原文件的内容
- with open(file_name) as file:
- return file.readlines()
- def validerTrue(list_test, site): # 用于确定是否每一组第二行含有'aaa'和'bbb'
- string = list_test[site]
- if ('aaa' in string) and ('bbb' in string):
- return 1
- return 0
- def writeintest(list_output, file_name): # 用于写入文件
- with open(file_name,'w') as file:
- file.writelines(list_output)
-
- def outputLines(list_test, site): # 用于生成新的每一组需要保存的数据,返回一个字符串
- list_site = [site - 1, site, site + 1, site + 2]
- res = ''
- for each_site in list_site:
- res += list_test[each_site]
- return res
- def main(file_name):
- list_test = obtenir_list(file_name) # 获得原文件的内容
-
- # 每一组第二行相当于就是所有索引号是除以四以后余1的数
- step = (i for i in range(len(list_test)) if i % 4 == 1 )
- list_output = list() # 创建一个列表方便输出
-
- for site in step:
- if validerTrue(list_test, site):
- # 将确认满足条件的数据写入输出的列表
- list_output.append(outputLines(list_test, site))
- file_name = input('请输入输出的文件名:')
- writeintest(list_output, file_name)
- return 1
-
- if __name__ == '__main__':
- main('text.txt')
复制代码
|
|