在文件夹中,有4种不同名称的文件,他们以文件名和时间序列号命名,每种文件有多个Excel表,如何根据名字中的时间序列挑选出每种文件中最新的4个数据表
时间: 2024-03-23 22:39:09 浏览: 13
以下是一个示例代码,可以根据您的具体情况进行修改和优化:
```python
import os
import re
import pandas as pd
# 1. 列出文件夹中所有文件的名称
files = os.listdir('/path/to/folder')
# 2. 使用正则表达式匹配出每个文件的时间序列号
pattern = re.compile(r'\d{8}')
# 3. 将每个文件的时间序列号和文件名存储到一个字典中
file_dict = {}
for file in files:
match = pattern.search(file)
if match:
time_str = match.group()
file_dict[file] = int(time_str)
# 4. 遍历字典,对于每个文件名,读取该文件夹下所有同名的Excel表格,并将它们按时间序列号排序
for file_name, time_num in file_dict.items():
file_path = '/path/to/folder/' + file_name
sheets = pd.read_excel(file_path, sheet_name=None)
sorted_sheets = sorted(sheets.items(), key=lambda x: int(re.search(pattern, x[0]).group()))
# 5. 选择时间序列号最大的那个4个Excel表格
latest_sheets = sorted_sheets[-4:]
for latest_sheet_name, latest_sheet_data in latest_sheets:
print(f'The latest sheet in {file_name} is {latest_sheet_name}')
```
在这个示例代码中,我们使用了sorted函数,将所有Excel表格按时间顺序排序。然后,我们只选择最新的4个Excel表格,以便按顺序查看它们。在每个文件的循环中,我们打印出每个文件中最新的4个Excel表格的名称。您可以根据需要修改代码,以便将表格的内容用于其他操作。