设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 32217|回复: 7
打印 上一主题 下一主题

【每日一坑 6】 查找文件内容

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2013-12-26 17:39:25 |显示全部楼层 |倒序浏览
Hello 大家好,我终于又来挖坑了。

上次的坑好像反响不是很好,论坛上只有两份解答。其实这题难度不大,不用什么特殊的函数来解决,就是字符串、队列的各种操作,可能会比较烦。如果你要用 python 来处理数据、文件,抓取网页等等,最后也都逃不过各种字符串和队列的操作。

这题本来定的比较宽松,你可以选择按标点划分成新队列,或者按照固定长度划分新队列,然后再按照元素在队列中的位置,重新整合成新队列输出。具体实现就不在微信里发了。

之前说过要挖几个跟文件相关的坑。今天就是在之前“查找文件”的基础上,增加对文件内容的检索。仍然是设定某个文件夹,不同的是要再增加一个文本参数,然后列出这个文件夹(含所有子文件夹)里,所有文件内容包括这个搜索文本的文件。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2014-1-2 10:30:56 |显示全部楼层
scz_000 发表于 2013-12-27 14:27
这题是不是可以拓展成为比较实用的搜索相关文本功能?不同的格式直接用open是不是默认用记事本打开,里面的 ...

open只是在python打开,把内容读入内存,不会调用任何其他程序打开。但这个过程是很慢的。所以虽然可以实现文本搜索,也还是不能用来全盘搜索。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2016-2-16 22:35:13 |显示全部楼层
xqqxjnt1988 发表于 2016-2-16 15:25
@crossing先生
请帮我看看,新手鼓起勇气努力写了大半天,期待前辈指点,有任何错误,不妥,都请您指出,拜 ...

查找文件里的内容不用readlines,直接read到一个字符串,然后find就可以了。
另外你这个代码好像无法检测子文件夹,因为你没有进一步对dir去递归搜索
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2017-4-11 23:29:28 |显示全部楼层
xqqxjnt1988 发表于 2017-4-11 15:33
谢谢你,crossin先生,我在你的论坛上学习了python之后,就找了一个写python的工作,所以到现在才来看, ...

#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

5#
发表于 2018-5-17 22:42:57 |显示全部楼层
coolqing 发表于 2018-5-16 16:48
我这边自己建了一个文件夹,里面放了一个子文件夹,一些txt、excel和word文件。
运行代码后,txt文件正常显 ...

excel、word是不能直接读取的,要读写的话,需要用专门的库
公众号回复 excel 有介绍
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

6#
发表于 2020-10-15 13:02:59 |显示全部楼层
jodie 发表于 2020-10-14 23:22

实际运用中,因为文件夹下可能有很多非文本文件,所以最好加上异常处理,避免报错跳出
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

7#
发表于 2021-2-13 20:14:27 |显示全部楼层
FERRYMAN 发表于 2021-2-13 19:24
老师好,能看看嘛?望得到您的建议。

这个程序有些问题。比如我在文件夹中加上一个Word文件,它就会报错。 ...

word无法直接当做文本读写,可以通过异常处理来跳过。或者要用 python-docx库打开
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

8#
发表于 2021-2-16 22:33:24 |显示全部楼层
FERRYMAN 发表于 2021-2-13 21:05
老师,我还有些问题。

报错UnicodeDecodeError的原因就是文件夹里的Word无法直接读是吗?

看你具体什么需求,如果是需要检索的话,那确实是要的

作为这个练习来说,能做到检索txt内容和其他文件的名字就够了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-3 07:13 , Processed in 0.035640 second(s), 27 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部