免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3244 | 回复: 2
打印 上一主题 下一主题

遍历指定目录并打印文件名,遇到一个问题,文件中的空行如何处理? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-14 12:16 |只看该作者 |倒序浏览
如果要搜索的文件中包含空格怎么处理?目前这个如果某个文件中间有空行的话就得不到想要的结果了。

初学求解。
  1. def print_keyline(query_word,basedir):
  2.     #输入一个关键字,打印出指定目录下包含此关键字的文件名和路径以及包含关键字的那一行。
  3.    
  4.     #读文件,如果包含指定的关键字,则输出文件路径,文件名以及包含关键字的那一行。
  5.     def read_file(file_list,key_word):
  6.         
  7.         for filename in file_list:
  8.             f = file(filename)
  9.             while True:
  10.                 line = f.readline()
  11.                 if key_word in line:
  12.                     print line,filename
  13.                 if len(line) == 0:
  14.                     break
  15.             f.close() # close the file

  16.         print("Finish searching.")


  17.     #返回指定目录的所有文件(包含子目录的文件)               
  18.     def import_file(floder_path):
  19.         file_list = []
  20.         if floder_path is None:
  21.             raise Exception("floder_path is None")
  22.         for dirpath, dirnames, filenames in os.walk(floder_path):
  23.             for name in filenames:
  24.                 file_list.append(dirpath + os.sep + name)
  25.         return file_list
  26.    
  27.     read_file(import_file(basedir), query_word)
复制代码

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
2 [报告]
发表于 2012-09-14 12:28 |只看该作者
readline 返回的行带\n的, 是完全可以区分EOF还是空行的, 没觉得有问题.

论坛徽章:
0
3 [报告]
发表于 2012-09-17 15:03 |只看该作者
回复 2# linux_c_py_php
自己又试了下,发现楼上是对的。
原来没试带空格的文件,之前有点混乱,被一个做开发的朋友问空格怎么处理,自己也傻了,没去试一下。
多谢楼上的。
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP