Python 在当前路径下 模糊查询文件名 取最新更新的文件
时间: 2024-09-20 09:11:58 浏览: 20
在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 提供了一些内置模块如 `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()`函数接受一个模式作为参数,它会返回该模式匹配到的所有路径。
python2.7 在指定目录下 查询 部分文件名 文件的全路径
你可以使用 `os` 和 `fnmatch` 模块来实现在指定目录下查询部分文件名的文件全路径,具体代码如下:
```python
import os
import fnmatch
# 指定目录路径和文件名的部分字符串
directory = '/path/to/directory'
file_pattern = '*part_of_filename*'
# 遍历目录下的所有文件并筛选符合条件的文件
for root, dirs, files in os.walk(directory):
for filename in fnmatch.filter(files, file_pattern):
# 输出符合条件的文件的全路径
print(os.path.abspath(os.path.join(root, filename)))
```
其中,`os.walk()` 函数会遍历指定目录下的所有文件和子目录,`fnmatch.filter()` 函数用于筛选符合条件的文件,`os.path.abspath()` 函数用于获取文件的绝对路径。