在不知道文件扩展名的情况下在文件夹中查找文件?

3

假设我想在名为“myfolder”的文件夹中搜索文件名为“myfile”的文件,如果不知道文件格式,我该如何操作? 另一个问题是:如何列出一个文件夹的所有文件以及它的子文件夹(以此类推)中的所有文件? 谢谢。


如果您对答案满意,请接受它。否则,您可以添加更多信息到您的问题中。 :) - André Laszlo
5个回答

5
import os
import glob
 
path = 'myfolder/'
for infile in glob.glob( os.path.join(path, 'myfile.*') ):
    print "current file is: " + infile

如果您想列出文件夹中的所有文件,只需将for循环更改为:
for infile in glob.glob( os.path.join(path) ):

3

要列出文件夹及其子文件夹中的所有文件,可以使用os.walk函数

import os
for root, dirs, files in os.walk('/blah/myfolder'):
    for name in files:
        if 'myfile' in name:
            print ("Found %s" % name)

如果您只想查看 'myfolder' 而不是其子文件夹,那么只需使用 os.listdir 函数 即可:

import os
for name in os.listdir('/blah/myfolder'):
    if 'myfile' in name:
        print ("Found %s" % name)

0
我不知道 Python 对此的逻辑,但我会按以下方式操作:
循环遍历目录中的每个文件,将文件名作为字符串获取,并检查它们是否以“myfile”开头,通过在“.”上拆分字符串,你可以将你要查找的内容与实际内容进行比较。

0

格式(我指的是您假定的文件类型)与其扩展名(它是其名称的一部分)无关。

如果您在UNIX上,可以使用find命令。 find myfolder -name myfile应该可以工作。

如果您想要完整的列表,可以使用没有任何参数的find,使用带有-R选项的ls或使用tree命令。所有这些都在UNIX上。


本来应该是 Python 代码,我想。但你总可以使用 subprocess.check_output 函数,对吧? :) - André Laszlo
是的,我没有注意到标签。问题本身似乎非常“shellish”。 - Noufal Ibrahim

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接