Python检查目录中所有特定名称的文件

2 投票
2 回答
7519 浏览
提问于 2025-04-17 20:39

我有一个文件名是 (mytest.) 的文件,它有三个或更多的后缀(比如 ".txt"、".shp"、".shx"、".dbf"),存放在一个目录里(path = 'C://sample')。我想列出所有同名的文件。

我知道可以用 import glob 来列出所有特定后缀的文件。

我的问题是,如何在这个目录中列出所有的 "mytest" 文件。

ex 

mytest.txt
mytest.shp
mytest.bdf
mytest.shx

mylist = ["mytest.txt","mytest.shp","mytest.bdf","mytest.shx"]


mytest.txt
mytest.shp
mytest.bdf
mytest.shx
mytest.pjr

mylist = ["mytest.txt","mytest.shp","mytest.bdf","mytest.shx","mytest.pjr"]

2 个回答

3

如果你有其他叫做 mylist 的文件,但这些文件的后缀名不是你想要的,那这个方法可能更适合你:

import glob

extensions = ["txt","shp","bdf","shx"] # etc

mylist = list()
for ext in extensions:
    mylist += glob.glob("mylist.{}".format(ext))

或者可能还有更简单的方法:

mylist = [item for item in glob.glob('mylist.*') if item[-3:] in extensions]
9

你在找的是glob模块,正如你在问题中提到的,但你想在文件扩展名上使用通配符:

import glob
glob.glob("mytest.*")

举个例子:

$ ls
a.doc  a.pdf  a.txt  b.doc

$ python
Python 2.7.3 (default, Dec 18 2012, 13:50:09) [...]
>>> import glob
>>> glob.glob("a.*")
['a.doc', 'a.pdf', 'a.txt']
>>>

撰写回答