找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3299|回复: 2

[求助] 新人第一帖 求助大神:如何读取多个txt文件中的特定内容....

1

主题

3

帖子

3

积分

贫民

积分
3
crazyPython 发表于 2018-2-27 16:54:29 | 显示全部楼层 |阅读模式
求助大神:如何读取多个txt文件中的特定内容并写入到1个txt文件中?
现有txt文件RT05、RT06。。。。。若干,文件中均有多条“GigabitEthernetXXX         DOWN  ”,需将多有txt文件中此行提取并写入新的txt文件中,请教各位大神,用Python代码该如何写?

需求1

需求1

需求2

需求2
回复

使用道具 举报

0

主题

11

帖子

11

积分

贫民

积分
11
小数点儿 发表于 2018-2-28 00:35:20 | 显示全部楼层
本帖最后由 小数点儿 于 2018-3-1 14:05 编辑

新人第一天注册,第一次回帖
不废话,直接上代码
  1. import os
  2. import re
  3. def file_name(file_dir):
  4.     l=[]
  5.     for root,dirs,files in os.walk(file_dir):
  6.         for file in files:
  7.             if os.path.splitext(file)[1] == ".txt":
  8.                 l.append(os.path.join(root,file))
  9.     return  l

  10. for i in file_name(r"C:\Users\test10\Desktop\BackUp"):
  11.     with open(i, encoding='utf-8') as a_file:
  12.         for a_line in a_file:
  13.             m=re.match('^GigabitEthernet',a_line)
  14.             if m is not None:
  15.                 with open(r"C:\Users\test10\Desktop\a.txt", mode='a', encoding='utf-8') as a_filew:
  16.                     a_filew.write(os.path.basename(i) +'  '+ a_line)

复制代码
  1. import os
  2. import re
  3. class lianxi:
  4.     def __init__(self,ext,yuan,mubiao):
  5.         self.ext=ext
  6.         self.yuan=yuan
  7.         self.mubiao=mubiao
  8.     def file_name(self):
  9.         return [os.path.join(root, file) for root, dirs, files in os.walk(self.yuan) for file in files  if
  10.                os.path.splitext(file)[1] == self.ext]

  11.     def chulifile(self):
  12.         for i in self.file_name():
  13.             with open(i, encoding='utf-8') as a_file, open(self.mubiao, mode='a',
  14.                                                            encoding='utf-8') as a_filew:
  15.                 for a_line in a_file:
  16.                     m = re.match('^GigabitEthernet', a_line)
  17.                     if m is not None:
  18.                         a_filew.write(os.path.basename(i) + '  ' + a_line)

  19. lx=lianxi(".txt",r"C:\Users\test10\Desktop\BackUp",r"C:\Users\test10\Desktop\a.txt")
  20. lx.mubiao=r"C:\Users\test10\Desktop\b.txt"
  21. lx.chulifile()
复制代码


回复 支持 1 反对 0

使用道具 举报

1

主题

3

帖子

3

积分

贫民

积分
3
crazyPython  楼主| 发表于 2018-2-28 08:22:48 | 显示全部楼层
小数点儿 发表于 2018-2-28 00:35
新人第一天注册,第一次回帖
不废话,直接上代码

感谢小数点儿大神,测试可用!棒棒哒~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表