2011-06-27 63 views
2

比方说,我想要在名为“myfolder”的文件夹中搜索文件名“myfile”,如何在不知道文件格式的情况下执行此操作? 另一个问题:如何列出文件夹的所有文件它的子文件夹的所有文件(等等)? 谢谢。在不知道扩展名的情况下在文件夹中查找文件?

+0

如果您满意答案,请接受它。否则,您可以在您的问题中添加更多信息。 :) –

回答

4
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)): 
0

我不知道蟒蛇的逻辑,但我会做到以下几点:

循环浏览目录中的每个文件,以字符串形式获取名称,并通过分割“。”字符串来检查它们是否以“myfile”开头。你可以比较你在找什么和你有什么。

0

format(我的意思是你认为文件类型)与它的扩展名(它是它的名字的一部分)无关。

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

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

+0

它应该是python代码,我想。但是你总是可以使用['subprocess.check_output'函数](http://docs.python.org/library/subprocess.html#subprocess.check_output),对吗? :) –

+0

是的。我没有注意到标签。这个问题本身看起来非常“炫耀”。 –

3

要列出文件夹中的所有文件和子文件夹等,使用os.walk function

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 function

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