首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在给定目录、扩展名和字符串的情况下查找字符串?

在给定目录、扩展名和字符串的情况下查找字符串?
EN

Stack Overflow用户
提问于 2019-01-23 03:01:29
回答 2查看 18关注 0票数 0

目前,我正在尝试确定如何返回包含特定字符串的目录中的文件名列表...我是这样开始的:

代码语言:javascript
复制
def searchABatch(directory, extension, searchString):
     for file in os.listdir(directory):
         if fnmatch.fnmatch(file, extension):
             return file

print(searchABatch("procedural", ".py", "foil"))

我希望它只打印我的"procedural“目录中扩展名为".py”的文件,但我得到了以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "pitcher20aLP2.py", line 38, in <module>
    print(searchABatch("procedural", ".py", "foil")) 
  File "pitcher20aLP2.py", line 34, in searchABatch
    for file in os.listdir(directory):
FileNotFoundError: [Errno 2] No such file or directory: 'procedural'
EN

回答 2

Stack Overflow用户

发布于 2019-01-23 03:07:35

您正在尝试打印当前工作目录中不存在的目录内容。在调用os.listdir()之前,您应该使用os.path.isdir()检查所提供的directory是否实际上是一个目录

代码语言:javascript
复制
def searchABatch(directory, extension, searchString):
    if os.path.isdir(directory):
        for file in os.listdir(directory):
            if fnmatch.fnmatch(file, extension):
                return file

print(searchABatch("procedural", ".py", "foil"))
票数 0
EN

Stack Overflow用户

发布于 2019-01-23 03:10:34

凯文是对的,您正在尝试在/home/2020/pitcher20a/procedural目录中查找procedural

使用os.getcwd()检查您的工作目录,并使用os.chdir(path)更改所需的工作目录。此外,您还可以在使用os.listdir()之前使用os.path.isdir()检查该目录是否为目录。

下面是python os模块文档- https://docs.python.org/2/library/os.html

另外,尝试优雅地处理错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54314820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档