Python 在当前路径下 模糊查询文件名
时间: 2024-09-20 13:11:01 浏览: 26
Python 提供了一些内置模块如 `os` 和第三方库(如 `fnmatch` 或 `glob`),可以用于在当前路径下进行模糊查询文件名。下面是一些基本示例:
1. 使用 `os.listdir()` 和正则表达式 (`re`) 进行模糊匹配:
```python
import os
import re
def fuzzy_search(pattern):
current_path = os.getcwd()
for filename in os.listdir(current_path):
if re.search(pattern, filename):
print(filename)
# 示例:查找包含".txt"的所有文件
fuzzy_search('.*\.txt')
```
2. 使用标准库 `glob` 来进行通配符匹配:
```python
import glob
# 查找所有.txt文件
matching_files = glob.glob('*.txt')
for file in matching_files:
print(file)
```
`glob.glob()`函数接受一个模式作为参数,它会返回该模式匹配到的所有路径。
相关问题
Python 在当前路径下 模糊查询文件名 取最新更新的文件
在Python中,你可以使用`os`和`datetime`模块结合`glob`函数来模糊查询并获取当前路径下所有文件中最近更新的那一个。这里是一个简单的示例:
```python
import os
import glob
from datetime import datetime
# 获取当前目录
current_dir = os.getcwd()
# 定义模糊搜索模式,例如查找所有的.txt文件
search_pattern = "*.txt"
# 使用glob找出所有匹配的文件列表
files = glob.glob(os.path.join(current_dir, search_pattern))
# 如果有文件
if files:
# 将文件路径转换为日期时间对象,假设文件名结构包含日期信息(如"file_20230308.txt")
# 这里只是一个示例,实际需要根据文件名解析出真正的时间信息
file_dates = [datetime.strptime(f.split("_")[-1], "%Y%m%d") for f in files]
# 找到最新的文件
latest_file = max(files[file_dates.index(max(file_dates))])
print("最新更新的文件是:", latest_file)
else:
print("当前目录下没有找到匹配的文件。")
Python 模糊查询文件取最新
在Python中,如果你想要模糊查询并取文件列表中的最新文件,可以结合`fnmatch`模块(用于模式匹配文件名)和上述的`os`模块。首先,列出所有符合特定模式(比如`.txt`, `.docx`, 等)的文件,然后基于修改时间选择最新的那个。以下是一个例子:
```python
import fnmatch
import os
from datetime import datetime
def fuzzy_search_latest(pattern):
current_dir = os.getcwd()
file_list = []
# 遍历当前目录及其子目录
for root, _, files in os.walk(current_dir):
for filename in fnmatch.filter(files, pattern):
file_path = os.path.join(root, filename)
file_list.append((file_path, os.path.getmtime(file_path)))
# 将元组列表按修改时间倒序排序
latest_files = sorted(file_list, key=lambda x: x[1], reverse=True)
# 返回最新文件的路径
return latest_files[0][0] if latest_files else None
# 示例:获取所有.txt文件中最新的
latest_txt_file = fuzzy_search_latest('*.txt')
print(f"最新.txt文件是:{latest_txt_file}")