如下图,我需要做的是读取所有的温度文本,观察所有温度记录的起始时间和结束时间,并保存在一个字典里。
import os
import pandas as pd #导入pandas包
path = 'D:\Project\data_rename'
filelist = os.listdir(path)
n=0
dic_temper={}
for filename in filelist:
n = n+1
if (n%8==1):
data = pd.read_csv(os.path.join(path,filename),sep='\t',header=None,names=['时间','温度']) # 读取csv文件
if ('体表温度' in filename):
dic_temper[filename.replace('体表温度.csv','')+'起始时间']=data.iloc[0,0][0:10]#pandas的数据切片,iloc[0,0]按道理是读取第一行第一列的数据,不知道为什么返回一个series,所以我直接去前10个数据,能返回时间日期就行
dic_temper[filename.replace('体表温度.csv', '') + '结束时间'] =data.iloc[len(data)-1,0][0:10]
print(dic_temper)
下面是运行结果:
因为输出的这个字典很长一行,看起来不直观,所以决定把这个字典写入excel文件。
这也挺简单,通过遍历字典的key值,把key和key对应的value写入excel对应的行和列就行了。
创建excel文件并写入数据用的是xlsxwriter,可以直接import,如果没有pychram会自动install,很方便的。
import os
import xlsxwriter
import pandas as pd #导入pandas包
path = 'D:\Project\data_rename'
filelist = os.listdir(path)
n=0
dic_temper={}
for filename in filelist:
n = n+1
if (n%8==1):
data = pd.read_csv(os.path.join(path,filename),sep='\t',header=None,names=['时间','温度']) # 读取csv文件
if ('体表温度' in filename):
dic_temper[filename.replace('体表温度.csv','')+'起始时间']=data.iloc[0,0][0:10]
dic_temper[filename.replace('体表温度.csv', '') + '结束时间'] =data.iloc[len(data)-1,0][0:10]
workbook = xlsxwriter.Workbook('demo.xlsx')# 创建一个Excel文件
worksheet = workbook.add_worksheet()# 创建一个工作表sheet对象
worksheet.set_column('A:A', 20)# 设定第一列(A)宽度为20像素
worksheet.set_column('B:B', 15)# 设定第二列(B)宽度为15像素
row = 0
col = 0
for key in (dic_temper):# 通过迭代写入数据.
worksheet.write(row, col, key)
worksheet.write(row, col + 1,dic_temper[key])
row += 1
workbook.close()#关闭并保存文件
下面是生成的excel文件,比字典看起来舒服多了。