我有以下文件:/tmp/test_glob/client.log.71.gz/tmp/test_glob/client.log.63.gz/tmp/test_glob/client.log.11/tmp/test_glob/core_dump.log/tmp/test_glob/client.log.32/tmp/test_glob/dm.log/tmp/test_glob/client.log/tmp/test_glob/client.log.1/tmp/test_glob/client.log.64.gz我想获取所有 .log 文件,除了以 .gz 结尾的文件。所需的结果应如下所示:/tmp/test_glob/client.log.11/tmp/test_glob/core_dump.log/tmp/test_glob/client.log.32/tmp/test_glob/dm.log/tmp/test_glob/client.log/tmp/test_glob/client.log.1我写了这个简单的代码:import globimport osglob_pattern = u'*.log*'for log_path in glob.glob(os.path.join('/tmp/test_glob', glob_pattern)): print('log_path: ', log_path)但它返回文件夹 /tmp/test_glob/ 中的所有文件我试图像这样修改这个模式:glob_pattern = u'*.log.[0-9][0-9]'但它只返回/tmp/test_glob/client.log.11/tmp/test_glob/client.log.32如何修复这种模式?
3 回答

繁星点点滴滴
TA贡献1803条经验 获得超3个赞
使用 Pythex(一个 Python 正则表达式测试器),匹配字符串
glob_pattern = u'.*(\.log)(?!.*(gz)).*'
为您的目标工作得很好。
添加回答
举报
0/150
提交
取消