python 遍历文件夹下文件

需求描述:

      1、读取指定目录下的所有数据集文件

      2、读取指定文件,输出文件数据

      3、保存到指定目录

实现过程代码如下:

# -*- coding: utf-8 -*-
"""
Created on Thu May 10 17:02:40 2018

@author: admin
"""
import os
import pandas as pd
import gc

# 遍历指定目录,显示目录下的所有文件名
def eachFile(filepath):
    pathDir =  os.listdir(filepath)
    allfilepath=list()
    for allDir in pathDir:
        child = os.path.join('%s%s' % (filepath, allDir))
        allfilepath.append(child)
    return allfilepath
 
#遍历目录下的所有文件    
def readFile(filepath):
    samp=pd.DataFrame()
    for i in filepath:
       #读取的文件的文件类型
       # df=pd.read_csv(open('%s'%i,encoding='UTF8'))
        df=pd.read_excel(r'%s'%i)
        df=df.loc[:,['资产订单编号','期数']]
        samp=pd.concat([samp,df])
        del df
        gc.collect()
    return samp

#执行函数
'''
每个python模块(python文件,也就是此处的test.py和import_test.py)都包含内置的变量__name__,当运行模块被执行的时候,
__name__等于文件名(包含了后缀.py);如果import到其他模块中,
则__name__等于模块名称(不包含后缀.py)。而“__main__”等于当前执行文件的名称(包含了后缀.py)。
进而当模块被直接执行时,__name__ == 'main'结果为真。
如果我们在作为模块的那个文件中写比如:”if name == ‘ganzhiqi’:”,
其中ganzhiqi是一个作为模块的文件的文件名,那么其后的代码也会执行。 

'''    
if __name__ == '__main__':
    filePath = 'D:/数据分析/'
    filepath=eachFile(filePath)
    allfile=readFile(filepath)
    allfile.to_csv(r'D:/数据分析/allfile.csv')

运行上面简洁的代码,就完成读取数据、整合数据到存放数据的整一套流程,再零散的数据也没有任何问题。

参考地址:http://www.cnblogs.com/jackchiang




你可能感兴趣的:(数据分析)