在文件夹中,有4种不同名称的文件,他们以文件名和时间序列号命名,每种文件有多个Excel表,如何根据名字中的时间序列挑选出每种文件中最新的数据表
时间: 2024-03-23 16:39:08 浏览: 31
您可以使用Python中的os模块和pandas模块来完成这个任务。
1. 使用os模块列出文件夹中所有文件的名称。
2. 使用正则表达式匹配出每个文件的时间序列号。
3. 将每个文件的时间序列号和文件名存储到一个字典中,以文件名为键,时间序列号为值。
4. 遍历字典,对于每个文件名,使用pandas模块读取该文件夹下所有同名的Excel表格,并将它们按时间序列号排序。
5. 选择时间序列号最大的那个Excel表格,即为该类文件中最新的数据表。
下面是一个示例代码,您可以根据您的具体情况进行修改和优化:
```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. 选择时间序列号最大的那个Excel表格
latest_sheet_name, latest_sheet_data = sorted_sheets[-1]
print(f'The latest sheet in {file_name} is {latest_sheet_name}')
```
注意,上面的示例代码仅供参考,具体实现可能需要根据您的具体情况进行修改和优化。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)