前言
批量读取同一文件夹下的csv文件,进行数据处理
(这里是挑选需要的列向量,生成新文件),
保存到新文件夹(csv文件同名)
代码
#!/user/bin/env python3
# -*- coding: utf-8 -*-
import os
import re
import datetime
import numpy as np
import pandas as pd
starttime = datetime.datetime.now() # 运行时间统计
if __name__ == '__main__':
filenames_in = 'E:\program\MATLAB\project\data\day1\data' # 输入文件的文件地址
filenames_out = 'E:\program\MATLAB\project\data\day1\data_done2' # 新文件的地址
pathDir = os.listdir(filenames_in)
for allDir in pathDir:
child = re.findall(r"(.+?).csv", allDir) # 正则的方式读取文件名,去扩展名
if len(child) >= 0: # 去掉没用的系统文件
newfile = ''
needdate = child #### 这个就是所要的文件名
domain1 = os.path.abspath(filenames_in) # 待处理文件位置
info = os.path.join(domain1, allDir) # 拼接出待处理文件名字
# ------------数据处理过程---------------
print(info, "开始处理")
# df = pd.DataFrame(pd.read_csv(info, index_col=0)) # 读取文件数据,以第一列为索引
# df = df.iloc[:, :-1] # 删除最后一列数据
df = pd.DataFrame(pd.read_csv(info, index_col=0, usecols=[0, 1, 3, 4, 5, 6, 7, 8, 10])) # 选取固定列的值生成新表
# print(df)
domain2 = os.path.abspath(filenames_out) # 处理完文件保存地址
outfo = os.path.join(domain2, allDir) # 拼接出新文件名字
df.to_csv(outfo, encoding='utf-8')
print(info, "处理完")
endtime = datetime.datetime.now()
print(endtime - starttime)
总结
第一次写博客,也是浏览了太多的网页终没有什么效果,就记录下来供自己和大家后续使用。有什么想法大家可以相互学习交流。
文件处理很简单,主要就是记录批量读取和保存文件。
代码参考: