Unix文件名通配符如何在Python中工作?在
一个给定的目录只包含子目录,在每个子目录中(除其他外)有一个文件,其名称以已知字符串结尾,例如_ext
。文件名的第一部分总是不同的,所以我需要使用这个模式来获取文件。在
我想这么做:
directory = "."
listofSubDirs = [x[0] for x in os.walk(directory)]
listofSubDirs = listofSubDirs[1:] #removing "."
for subDirectory in listofSubDirs:
fileNameToPickle = subDirectory + "/*_ext" #only one such file exists
fileToPickle = pickle.load(open(fileNameToPickle, "rb"))
... do stuff ...
但是没有模式匹配发生。它在Python下如何工作?在
Shell通配符模式在Python中不起作用。使用^{} 或^{} 模块来解释通配符。}一起提供匹配文件名的列表。
fnmatch
解释通配符并允许您根据它们匹配字符串,glob
在内部使用fnmatch
,并与{在本例中,我将使用
fnmatch.filter()
:如果您的结构只包含一个级别的子目录,您还可以使用一个
^{pr2}$glob()
模式来表示;表达式的路径中的*/
将展开以匹配所有子目录:相关问题 更多 >
编程相关推荐