Python新手!我正在尝试将glob
与max
结合使用,以查找文件夹中最后修改的文件,但排除扩展名为pdf
的一种类型。我尝试过:
在不排除的情况下,我的工作正常:
crshLogs = glob.glob(homePath+crshLogPath+'*.*')
currCrshLog = max(crshLogs , key = os.path.getmtime)
要尝试排除我尝试过的pdf:
crshLogs = glob.glob(homePath+crshLogPath+'!(*.pdf)')
还有
crshLogs = glob.glob(homePath+crshLogPath+'*.*') - glob.glob(homePath+crshLogPath+'*.pdf')
但是在两种情况下,下一行代码都以ValueError: max() arg is an empty sequence
失败,因此大概没有返回任何内容。
任何帮助将不胜感激!
答案 0 :(得分:1)
[filename for filename in glob.glob(homePath+crshLogPath+'*.*') if not filename.endswith('pdf')]
我也会改变
crshLogs = glob.glob(homePath + crshLogPath +'。')
到
crshLogs = glob.glob(os.path.join(homePath, crshLogPath, *.*')
这将处理低劣的边缘情况,例如homePath不在/中结束,以及crshLog路径不是以/开头,这会造成麻烦
答案 1 :(得分:0)
您可以创建一个数组,而不将pdf放入其中:
file_list=[]
for filename in glob.glob(homePath+crshLogPath+'*.*'):
if ".pdf" not in filename:
file_list.append(filename)
然后从该数组获取文件名。