**
本次是一个关于数据读取处理的小练习
**
一、以下所需要的数据请自己下载https://pan.baidu.com/s/1SYH2GRsA4H0upJCPfcWEVw
密码:8gri
要求:
需要的技能:os、pandas
'**二、代码的演示**
在这里插入代码片`
话不多说,咱们直接上代码。
import os
import pandas as pd
class ReadAndSave_file:
def init(self,path):
self.path=path
def get_dir(self):
'''
获取path路径下的所有的文本,并将其放在一个列表中
'''
tmp_list = []
for dir_path, file, name in os.walk(r"D:\作业\Digits"):
data_path_list = [dir_path + "\\" + i for i in name if 'txt' in i]
tmp_list.extend(data_path_list)
return tmp_list
def open_file(self,path1):
'''
打开文本,获取文本里的内容和行数
'''
with open(path1,"r",encoding="utf-8")as f:
data = [i.strip()for i in f.readlines()]
line = len(data)
data1 = ''.join(data)
data1 = list(map(int,data1))
return line,data1
def get_DataFrame(self):
'''
整理每个文本里的data,行数line,target,index,types
将其放入一个字典里,
用pandns构建DataFrame结构呈现出来
'''
index_list = []
target_list = []
types_list = []
data_list = []
line_list = []
for root in self.get_dir():
index_list.append(root.split("\\")[-1].split(".")[0].split("_")[1])
target_list.append(root.split("\\")[-1].split(".")[0].split("_")[0])
types_list.append(root.split("\\")[-2])
line_list.append (self.open_file(root)[0])
data_list.append(self.open_file(root)[1])
d = {"line":line_list,"data":data_list,"type":types_list,"target":target_list,"index":index_list}
df = pd.DataFrame(d)
return df
三、结果
f=ReadAndSave_file(r"D:\\作业\Digit")
print(f.get_DataFrame())
三、
出现的小问题:
1、将列表中的字符串都变为数值时,用map函数
2、最后保存为pal 格式出现了问题