python如何简单粗暴的遍历文件夹中的子文件夹并读取某特定名称的.csv类型文件
一言不合上代码:
import pandas as pd
import os
import numpy as np
file_path=r"F:\results"
file_list=[]
file_dict={}
for iroot,idirs,ifiles in os.walk(file_path):
if not idirs:
file_dict[iroot]=ifiles[4]
data_={}
for k,v in file_dict.items():
content=[]
file_name=os.path.join(k,v)
file=pd.read_csv(file_name)
content=np.array(file)[-2,:]
p_value=k[15:]
data_[p_value]=content[2:]
data=pd.DataFrame(data_)
print("data:",data[0:10])
注释:
主要用到os.walk(), 文件结构如图: 目的是: 文件名夹+文件中某csv文件中某行数据。 方法 采用字典键值对的方式。 最后将提取的数据保存在新的文件夹中。(代码不展示了)
结果:
data: 48 48.1 48.2 48.400000000000006 48.50000000000001 \
0 7.477e+12 7.872e+12 7.769e+12 8.64e+12 8.807e+12
1 0 -0 -0 0 -0
2 0.004348 0.004307 0.004339 0.004329 0.004324
3 0.053576 0.052513 0.051452 0.042071 0.04063
4 0.030439 0.030152 0.030371 0.030305 0.030271
48.60000000000001 48.70000000000001 48.80000000000001 48.90000000000001 \
0 8.863e+12 8.887e+12 9.294e+12 9.448e+12
1 0 0 0 -0.008542
2 0.00432 0.004315 0.00431 0.004306
3 0.040017 0.039425 0.03955 0.034168
4 0.030238 0.030205 0.030172 0.03014
49.100000000000016 ... 95.79999999999949 95.99999999999947 \
0 9.722e+12 ... 7.46e+13 7.566e+13
1 -0.008391 ... 0 0
2 0.004269 ... 0.003068 0.003062
3 0.033563 ... 0.025434 0.02606
4 0.029883 ... 0.027616 0.027558
96.19999999999946 96.29999999999946 96.39999999999945 96.59999999999944 \
0 7.527e+13 7.502e+13 7.485e+13 7.376e+13
1 -0 0 0.001383 0.001738
2 0.00306 0.003059 0.003057 0.003055
3 0.026005 0.028022 0.027663 0.027814
4 0.027537 0.027527 0.027516 0.027496
96.79999999999943 96.99999999999942 97 deal
0 7.327e+13 7.301e+13 7.301e+13 1.137e+13
1 0.001482 0.001395 0.001395 0.008647
2 0.003053 0.003051 0.003051 0.004228
3 0.029647 0.027902 0.027902 0.034586
4 0.027475 0.027455 0.027455 0.029599
[5 rows x 335 columns]
后期根据个人审美,可以进一步处理。
|