使用python和pandas,这里有 2个文件夹分别为文件夹1和文件夹2,文件夹1包含以年-月-日格式时间为命名的txt文件,每个txt内格式为数字文本加逗号加数字文本;文件夹2包含以年-月-日格式时间命名的子文件夹,子文件夹包含以数字文本命名的csv文件。 输入一个日期比如2023-04-10,找到文件夹1下的名为2023-04-10的txt文件并读取数据文本,找到文件夹2下的名为2023-04-10的文件夹,并通过名为2023-04-10的txt文件内容数据文本在文价夹2下名为2023-04-10的文件夹中找到对应数字文本的csv文件,并用pandas读取这些csv文件
时间: 2023-06-08 17:08:43 浏览: 99
你好!感谢你的提问。
针对你的问题,可以通过以下Python代码实现:
```python
import os
import pandas as pd
# 输入日期
date = '2023-04-10'
# 找到文件夹1下的txt文件并读取数据
txt_path = os.path.join('文件夹1', f'{date}.txt')
with open(txt_path, 'r') as f:
txt_content = f.read()
# 找到文件夹2下的对应子文件夹
folder_path = os.path.join('文件夹2', date)
if os.path.isdir(folder_path):
# 获取子文件夹中的所有csv文件名
csv_files = os.listdir(folder_path)
# 匹配对应的csv文件名并读取数据
csv_contents = []
for csv_file in csv_files:
if csv_file.split('.')[0] in txt_content:
csv_path = os.path.join(folder_path, csv_file)
csv_df = pd.read_csv(csv_path)
csv_contents.append(csv_df)
```
在以上代码中,首先通过 `os.path.join()` 函数拼接出txt文件路径和子文件夹路径。然后使用Python内置函数 `open()` 读取txt文件内容,使用 `os.path.isdir()` 判断是否存在对应的子文件夹。若存在子文件夹,则使用 `os.listdir()` 获取所有csv文件名,并通过循环匹配文件名,并使用 `pd.read_csv()` 函数读取对应csv文件的数据。最后将数据输出为列表型的csv_contents。
希望能够解决你的问题,如有疑问,欢迎随时提出。
阅读全文