在linux中搜索用户定义的文件

Posted

技术标签:

【中文标题】在linux中搜索用户定义的文件【英文标题】:Searching for a user defined file in linux 【发布时间】:2013-10-15 13:00:41 【问题描述】:

我的任务是在 python(或 c++ 或 bash)中创建一个搜索程序,在编码方面我真的没有那么多经验,所以如果这根本不在正确的轨道上,对不起!

用户需要输入关键字IE“报告”,该函数需要在所有目录中查找名称为“报告”的文件。我在这里编写的这个脚本似乎一直运行到第 5 行。有人可以帮我吗?谢谢!

import os

keyword = raw_input ("What would you like to search for?")

os.chdir("/home/noob")

for files in os.listdir("."):

  if files(keyword):

     print files

【问题讨论】:

你不能使用find命令吗? 分享链接。 ***.com/questions/5905054/… 【参考方案1】:

我猜你收到的是TypeError: 'list' object is not callable。那是因为os.listdir 返回一个文件列表。

您想要执行以下操作之一:

if keyword in files: # for an exact match

或者

for filename in files:
    if keyword.lower() in filename.lower(): #for case insensitive searching

【讨论】:

所以在添加之后,我认为我需要将文件定义到一个目录,如 files = /home/noob 啊哈太棒了!添加文件所在的位置有多容易?所以它会告诉你它所在的目录。我显然已经将它设置为在 /home/noob 中查找,但说文件在 noob/documents/office/ 中,我怎样才能让程序向我展示这个? 查看os 模块和os.path(您最喜欢的搜索引擎应该会提供帮助)。特别感兴趣的应该是os.path.abspath。 (另外,>>> help(os.path.abspath),一旦你完成了import os

以上是关于在linux中搜索用户定义的文件的主要内容,如果未能解决你的问题,请参考以下文章

用户数据脚本未在我的自定义 AMI 上运行,但在标准 Amazon linux 中运行

Linux基础

Linux locate 文件搜索

禁用交互式搜索 - 用户端

Linux学习笔记一

linux下命令怎么修改用户名