Python-----合并同一个文件夹下多个txt

读取一个文件夹下的多个txt,并合并到一张表里

首先看一下我项目里遇到的一个情况吧,目标如标题所示。

oder_path = r'E:/项目/2016订单/'
# 由于订单数据是在一个文件夹下的多个.txt文件,所以先获取每一个.txt的路径信息
def get_file_path(path):  # 获取文件路径
    for root, dirs, files in os.walk(path):
        file_path = []
        for file in files:
            # print(file)     #文件名
            file_path.append(os.path.join(root, file))
        print(file_path)
    return file_path


def get_oders(oder_path, save_path):
    # 读取历史数据中的档位信息
    file_paths = get_file_path(oder_path)  # 获取历史主数据的路径信息
    # 依次读取多个相同结构的txt文件并创建DataFrame
    li = []
    for file in file_paths:
        data = pd.read_csv(file, encoding='utf-8', engine='python', sep=',')  # 读取txt文件,有表头
        num = data[["LICENCECD", "ORDER_DATE"]]
        num['ORDER_DATE'] = pd.to_datetime(num['ORDER_DATE'])
        # num.dropna(subset=['LICENCECD'], inplace=True)  # 去除数据中没有许可证号码的行
        num.drop_duplicates(subset=['LICENCECD'], keep='first', inplace=True)  # 去重
        li.append(num)
    rangeInfo = pd.concat(li)  # 从订单数据中提取出这一年的有关订单信息
    rangeInfo.to_csv(save_path, sep='\t', index=False)  # 保存历史数据.txt

下面是网上其他的一些,可以看看

https://www.jb51.net/article/138936.htm

# -*- coding:utf-8*-
# import sys
# reload(sys)
# sys.setdefaultencoding('utf8')
import os
import os.path
import time
time1 = time.time()
########################## 合并同一个文件夹下多个txt ################
def MergeTxt(filepath, outfile):
    k = open(filepath+outfile, 'a+')
    for parent, dirnames, filenames in os.walk(filepath):
        for filepath in filenames:
            txtPath = os.path.join(parent, filepath)  # txtpath就是所有文件夹的路径
            f = open(txtPath)
            ##########换行写入##################
            k.write(f.read()+"\n")
    k.close()
    print("finished")
    
if __name__ == '__main__':
    filepath = "E:/项目/2018订单/"
    outfile = "oders_2018.txt"
    MergeTxt(filepath, outfile)
    time2 = time.time()
    print(u'总共耗时:' + str(time2 - time1) + 's')

下面这个更好一点吧

import os
 
path = "D:\PycharmProjects"  # 文件夹路径
def get_dir(path):              #获取目录路径
    for root,dirs,files in os.walk(path):     #遍历path,进入每个目录都调用visit函数,,有3个参数,root表示目录路径,dirs表示当前目录的目录名,files代表当前目录的文件名
        for dir in dirs:
            #print(dir)             #文件夹名                 
            print(os.path.join(root,dir))      #把目录和文件名合成一个路径
 
def get_file(path):          #获取文件路径
    for root, dirs, files in os.walk(path):
 
        for file in files:
            #print(file)     #文件名
            print(os.path.join(root,file))

if __name__ == '__main__': 
	get_dir(path)
	get_file(path)
--------------------- 

原文:https://blog.csdn.net/qq_30990097/article/details/80882555 

那我需要的是获取一个文件夹下所有文件的路径的一个列表,程序修改如下:

def get_file(path):  # 获取文件路径
    for root, dirs, files in os.walk(path):
        file_path = []     # 定义一个空列表
        for file in files:
            # print(file)     #文件名
            file_path.append(os.path.join(root, file))       # 依次将文件路径追加到空列表中
        print(file_path)
     return file_path

你可能感兴趣的:(程序开发之路,数据分析)