【问题标题】:Find file in folder without knowing the extension?在不知道扩展名的情况下在文件夹中查找文件?
【发布时间】:2011-09-23 07:08:09
【问题描述】:

假设我想在名为“myfolder”的文件夹中搜索文件名“myfile”,在不知道文件格式的情况下怎么做? 另一个问题:如何列出一个文件夹的所有文件它的子文件夹的所有文件(等等)? 谢谢。

【问题讨论】:

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

标签: python file search directory match


【解决方案1】:

我不知道 python 的逻辑,但我会这样做:

遍历目录中的每个文件,以字符串形式获取名称,并通过在“.”上拆分字符串来检查它们是否以“myfile”开头您可以将您正在寻找的内容与您拥有的内容进行比较。

【讨论】:

    【解决方案2】:

    要列出文件夹及其子文件夹等中的所有文件,请使用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)
    

    【讨论】:

      【解决方案3】:

      如果您想查看子目录,也可以查看 os.walk 函数。

      http://docs.python.org/library/os.html#os.walk

      【讨论】:

        【解决方案4】:

        format(我的意思是您假设文件类型)与其扩展名(这是其名称的一部分)无关。

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

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

        【讨论】:

        • 我认为应该是 python 代码。但是您始终可以使用subprocess.check_output function,对吗? :)
        • 是的。我没有注意到标签。这个问题本身看起来很“空洞”。
        【解决方案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) ):
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-06
          • 2013-08-31
          • 1970-01-01
          • 1970-01-01
          • 2022-01-27
          • 2022-11-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多