大数据扔出错误文件

import re
import shutil
from pathlib import Path

import pandas as pd
import sys
import os
def clean(paths):
    return_data = []
    with open(paths,"r") as f:
        text = f.read()

    lists = []
    strs = []
    count = 0
    for i in text.split("\n"):
        # print(i)
        if "DataName" in i :
            if strs:
                lists.append(strs)
            strs = []
            i = '%s,'%count + i.replace("  ",",").replace(" ",",")
            strs.append(i)
            # lists.append(i.split(","))
            # lists.append(str(count))

        if "DataValue" in i:
            i = '%s,'%count + i.replace(" ",",")
            strs.append(i)
            # lists.append(i.split(","))
            # lists.append(str(count))
        count +=1
    else:
        if strs:
            lists.append(strs)
    for i in lists:
        table = pd.DataFrame([ii.split(',') for ii in i]).applymap(lambda x:"" if x == None else x)
        # print(table)
        columns_name = []
        columns = table.columns
        for index, row in table.iterrows():
            if index == 0:
                # 提取Dataname行数据
                for c in columns.values.tolist():
                    columns_name.append(row[c])
            # print(columns_name)
            if index > 1:
                # 提取Datavalue行数据
                for c in range(2,len(columns_name)):
                    # 判断是否为空值
                    if row[c]:
                        return_data.append([columns_name[c],row[c],row[0]])

    # print(return_data)
    return return_data

def fileclean(inputdirs,outputfile,errordir):
    datas = []
    for folderName,subfolders,filenames in os.walk(inputdirs):
        # print(folderName,subfolders,filenames)
        for filename in filenames:
            if filename.endswith(".csv"):
                parent = folderName.split("\\")[-1]
                paths = folderName+'/'+filename
                parent_s = parent.split("_")
                Devices_time = re.findall(";(.*?)]",filename)[0].replace("_",'/',2).replace("_",":")
                test_name = filename.split(" ")[0]
                Wafer_id = re.findall("\[(.*?)-",filename)[0]
                test_pipeline = re.findall("-(.*?)\(",filename)[0]
                #ICES5V [A213911020-T1D1(17) ; 11_7_2021 10_31_26 PM]
                for i,j,k in clean(paths=paths):
                    data = {
                        "PATH":parent,
                        "FILE_NAME":filename,
                        "DATANAME":i,
                        "DATAVALUE":j,
                        "PROJECT_TYPE":parent_s[0],
                        "PRODUCT":parent_s[1],
                        "PRODUCT_VERSION":parent_s[2],
                        "LOT":parent_s[3],
                        "TEST_ITEM":parent_s[4],
                        "TEST_NODE":parent_s[5],
                        "FACTORY":parent_s[6],
                        "DEVICES_TIME":Devices_time,
                        "TEST_NAME":test_name,
                        "WAFER_ID":Wafer_id,
                        "TEST_PIPELINE":test_pipeline,
                        "LINE_NO":k
                    }
                    datas.append(data)

            else :
                if os.path.isdir(errordir):
                    paths = folderName + '/' + filename
                    shutil.move(paths, errordir)
                # with open(errorfile,"a+") as f:
                #     import datetime
                #     f.write(f"{datetime.datetime.now()} -- f{folderName}/f{filename} -- error")
        if datas:
            table = pd.DataFrame(datas)
            # 日期处理
            table['DEVICES_TIME'] = pd.to_datetime(table['DEVICES_TIME'])
            table.to_csv(outputfile,index=None)
if __name__ == '__main__':
    # argv = sys.argv
    # print(argv)
    # fileclean(argv[1],argv[2],argv[3])
    # python clean_data.py 文件夹路径 输出文件路径.csv 错误保存.txt
    fileclean("data","data2.csv","error")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
大数据架构图Visio文件是一种用于描述大数据系统架构的文件格式。它以Visio软件的方式呈现了大数据系统中的各种组件和架构关系。 大数据架构图Visio文件通常包括以下几个方面的内容: 1. 数据来源:描述数据的来源,例如数据库、传感器、日志文件等。这些数据来源是构建大数据系统的基础。 2. 数据处理:展示了对数据的处理过程,包括数据清洗、转换、聚合、分析等。这个部分是大数据系统的核心,决定了对数据的处理方式及结果。 3. 存储系统:显示了数据在大数据系统中的存储方式和结构,常见的存储系统包括Hadoop分布式文件系统(HDFS)、NoSQL数据库等。 4. 大数据计算框架:描述了大数据系统中常用的计算框架,例如Hadoop MapReduce、Apache Spark等。这些框架提供了分布式计算和数据处理能力,帮助用户对大数据进行快速分析和处理。 5. 数据可视化:展示了数据处理结果的可视化方式,例如图表、报表等。数据可视化是将复杂的大数据变成易于理解和分析的形式,帮助决策者更好地了解和利用数据。 通过大数据架构图Visio文件,用户可以清晰地了解大数据系统的组件和关系,帮助他们更好地理解和管理大数据。此外,大数据架构图Visio文件还可用于与团队成员、项目经理或其他相关方分享大数据系统的架构设计和实施方案,有效促进合作与沟通。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_32888845

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值