def get_efficiency_files(folder, keyword): efficiency_files = {} for root, dirs, files in os.walk(folder): for file in files: # for keyword in keywords: if keyword in file: if keyword not in efficiency_files: efficiency_files[keyword] = {'latest_file': None, 'latest_time': 0} match = re.search(r'\d{12}', file) if match: time_str = match.group() time_int = int(time_str) if time_int > efficiency_files[keyword]['latest_time']: efficiency_files[keyword]['latest_file'] = file efficiency_files[keyword]['latest_time'] = time_int return efficiency_files在这基础上帮我修改一下 是返回值是文件名称
时间: 2024-02-14 22:17:06 浏览: 18
好的,如果你要将这个函数的返回值改为文件名称字符串,可以将 `efficiency_files` 的数据结构改为字典列表,每个字典只包含一个文件名键值对,例如:
```python
def get_efficiency_files(folder, keyword):
efficiency_files = []
for root, dirs, files in os.walk(folder):
for file in files:
if keyword in file:
match = re.search(r'\d{12}', file)
if match:
time_str = match.group()
time_int = int(time_str)
efficiency_files.append({time_int: file})
if not efficiency_files:
return None
latest_file_dict = max(efficiency_files, key=lambda x: x.keys())
latest_file = latest_file_dict[latest_file_dict.keys()[0]]
return latest_file
```
这里的 `efficiency_files` 是一个字典列表,每个字典只包含一个文件名键值对,其中键是文件名中的时间戳,值是文件名字符串。在遍历完所有文件后,我们使用 `max()` 函数找到字典列表中时间戳最大的字典,并从中取出文件名键值对返回。
需要注意的是,如果在指定文件夹中没有找到包含关键词的文件,返回值为 `None`。如果需要返回一个空字符串,可以将 `None` 改为 `''`。