您好我正在寻找一些帮助和一个起点,可以帮助我找到跨多个文件的单词或短语,而不是CTRL + F并输入单词来搜索每个单独的文件我可以打开所有这些文件在python中,运行一个搜索命令,它会给我返回关键字的文件名。任何帮助表示赞赏。
答案 0 :(得分:1)
import os
import os.path
for fname in os.listdir('.'):
if os.path.isfile(fname):
f = open(fname)
if 'mystring' in f.read():
print fname
f.close()
如果您需要搜索子目录,则需要更多内容,但这会搜索当前目录中的每个文件以查找mystring
的实例。
答案 1 :(得分:0)
如果需要,您可以根据python中的要求创建自己的功能。到目前为止我还没有使用过python。我可以给你一般的想法或逻辑来实现这个功能。
仅供参考:如果您想要这些功能以方便自己,那么任何操作系统都提供内置功能。 Windows有findstr,linux有grep功能。
答案 2 :(得分:0)
最简单的就是......:
import fileinput
word = raw_input('Word to search for: ')
for line in fileinput.input():
if word in line:
print(fileinput.filename())
fileinput.nextfile()
这是为了在命令行中使用感兴趣的文件调用 - 所以它非常注重Unix(因为在Unix中,shell会为你扩展通配符,程序会接收文件名作为参数);在Windows中,您可能需要自己进行全局操作。
在Python 3中,将raw_input
更改为input
,否则代码是相同的。
传递单词作为第一个参数进行搜索会更优雅,在没有文件参数的情况下调用时有什么好的默认操作等等,但所有这些小的复杂性都要等到你已经明确了你的确切要求(什么平台,什么是Python发布,等等)。