def get_efficiency_files(folder): efficiency_files = [] for root, dirs, files in os.walk(folder): for file in files: if '效能' in file: efficiency_files.append(file) return efficiency_files 定义一个函数,根据时间序列筛选出最新的文件。 复制 def get_latest_file(files): latest_file = None latest_time = 0 for file in files: match = re.search(r'\d{8}', file) if match: time_str = match.group() time_int = int(time_str) if time_int > latest_time: latest_file = file latest_time = time_int return latest_file如果我想修改一下,文件夹里除了有包含效能的表还有包含场地、包含装载的表 我想让他分别超出这些表的最新的文件
时间: 2024-03-24 13:41:13 浏览: 23
可以稍微修改一下 `get_efficiency_files()` 函数,添加一个参数 `keywords`,表示需要筛选的关键词列表,然后根据传入的关键词列表来筛选文件。修改后的函数代码如下:
```python
def get_efficiency_files(folder, keywords):
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{8}', 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
```
然后调用这个函数来获取最新的文件即可,比如:
```python
folder = '/path/to/your/folder'
keywords = ['效能', '场地', '装载']
latest_files = get_efficiency_files(folder, keywords)
print(latest_files)
# {'效能': {'latest_file': 'efficiency_20220101.csv', 'latest_time': 20220101},
# '场地': {'latest_file': 'field_20220102.csv', 'latest_time': 20220102},
# '装载': {'latest_file': 'loading_20220103.csv', 'latest_time': 20220103}}
```
这个函数返回一个字典,每个关键词对应一个字典,包含最新的文件名和时间。