目前,我正在尝试确定如何返回包含特定字符串的目录中的文件名列表...我是这样开始的:
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”的文件,但我得到了以下错误:
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'发布于 2019-01-23 03:07:35
您正在尝试打印当前工作目录中不存在的目录内容。在调用os.listdir()之前,您应该使用os.path.isdir()检查所提供的directory是否实际上是一个目录
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"))发布于 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
另外,尝试优雅地处理错误。
https://stackoverflow.com/questions/54314820
复制相似问题