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

发布于 2024-11-17 16:02:03 字数 102 浏览 2 评论 0原文

假设我想在名为“myfolder”的文件夹中搜索文件名“myfile”,在不知道文件格式的情况下该如何执行? 另一个问题:如何列出文件夹的所有文件及其子文件夹(依此类推)的所有文件? 谢谢。

Let's say I want to search for a file name "myfile" in a folder named "myfolder", how can I do it without knowing the format of the file?
Another question: how to list all files of a folder and all the files of it's subfolders (and so on)?
Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

疾风者 2024-11-24 16:02:03
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) ):
import os
import glob
 
path = 'myfolder/'
for infile in glob.glob( os.path.join(path, 'myfile.*') ):
    print "current file is: " + infile

if you want to list all the files in the folder, simply change the for loop into

for infile in glob.glob( os.path.join(path) ):
倾城泪 2024-11-24 16:02:03

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

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

在更简单的情况下,您只想查看 'myfolder' 而不是其子文件夹,只需使用 os.listdir 函数

import os
for name in os.listdir('/blah/myfolder'):
    if 'myfile' in name:
        print (f"Found {name}")

To list all files in a folder and its subfolders and so on, use the os.walk function:

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

In the easier case where you just want to look in 'myfolder' and not its subfolders, just use the os.listdir function:

import os
for name in os.listdir('/blah/myfolder'):
    if 'myfile' in name:
        print (f"Found {name}")
梦途 2024-11-24 16:02:03

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

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

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

The format (by which I mean you assume file type) is not related to its extension (which is part of its name).

If you're on a UNIX, you can use the find command. find myfolder -name myfile should work.

If you want a complete listing, you can either use find without any arguments, use ls with the -R option or use the tree command. All of these are on UNIX.

还不是爱你 2024-11-24 16:02:03

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

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

Also you can have a look to os.walk function if you want to look inside subdirectories.

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

久伴你 2024-11-24 16:02:03

我将执行以下操作:

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

I would do the following:

Loop through each file in the directory, get the names as strings and check to see if they begin with myfile by splitting the string on the . you can compare what you are looking for with what you have.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文