Python将CSV文件转换为ASC文件供CANoe分析 您所在的位置:网站首页 你是人间四月天pdf Python将CSV文件转换为ASC文件供CANoe分析

Python将CSV文件转换为ASC文件供CANoe分析

2024-02-21 03:01| 来源: 网络整理| 查看: 265

文章目录

前言

一、操作过程

1.获取路径下的文件

2.打开文件

3.其他功能

总结

前言

csv文件格式的文件CANoe无法识别,需要转换为asc文件,记录转换过程中的操作过程。

一、操作过程 1.获取路径下的文件

获取文件夹下的所有文件夹,将所有的文件名称保存到列表内操作。

filedir = "./resource/" file_generate = './out/' file_namelist = os.listdir(filedir) # file_namelist 为存储filedir路径下的文件的列表

遍历file_namelist列表的每一个元素,str类型的变量file_name接 .split(“.”)就是以点为分割条件将str类型的变量切割为列表保存。

for file_name in file_namelist: file_path = filedir + file_name # csv文件路径 file_name_no_csv = file_name.split(".") # csv文件名去除 .csv 后缀

创建每一个asc文件的路径

def file_creat(file_name, content): # 如果文件路径不存在则创造路径 if not os.path.exists(file_generate): os.makedirs(file_generate) csv_file_path_creat = file_generate + file_name csv_file_path_creat_name = csv_file_path_creat return csv_file_path_creat_name 2.打开文件

如何打开一个文件,使用 with open(文件绝对路径, mode='r', encoding='utf-8') as file_object:打开,mode代表了模式,r是读,w是写(如果文件不存在就创造一个),encoding是编码方式,file_object就是读取的文件的全部内容,同时获取文件的总行数。

def csv_convert_asc(file_path, asc_filename): count_num = 0 # 计算次数计时器 with open(file_path, mode='r', encoding='utf-8') as file_object: # 打开csv文件 with open(asc_filename, mode='w', encoding='utf-8') as file_asc: # 创造一个asc文件 file_object.readline() # 舍弃csv第一行 total = sum(1 for line in open(file_path, encoding='utf-8')) # 获取csv文件总行数

遍历获取文件内容的行数与每一行的数据。

for num, i in enumerate(file_object): Device_ID, Receive_time, Frame_ID, Data_content = i.strip().split(',')

num:当前文件行数

i:当前文件行的文件内容

将文件每一行的内容i去掉空格后以 ”,” 作为分隔符,将每一个数据用左侧的变量保存。

3.其他功能

将日期转化为星期几的方法,传入的日期格式为:年+符号+月+符号+日

week = datetime.strptime(date_day, '%Y-%m-%d').weekday()

上面指令中的%Y-%m-%d就是指定了str类型变量date_day的时间格式

求取时间差

def file_creat(file_name, content): # 如果文件路径不存在则创造路径 if not os.path.exists(file_generate): os.makedirs(file_generate) csv_file_path_creat = file_generate + file_name csv_file_path_creat_name = csv_file_path_creat return csv_file_path_creat_name

字符串 + .replace(“字符”, “”) 去除字符操作

result / time_start_in:str类型变量,将其转换为datetime类型变量,时间格式为%Y-%m-%d %H:%M:%S.%f

time_num = (date3_after - date3_start).total_seconds()

返回一个秒数

将变量 delta_time 格式化为带有六位小数的字符串形式

delta01_time = Time_Sub(Record_Time_, Record_Time) # 第一列数据 delta_time = delta01_time delta_time_8 = format(delta_time, '.6f')

例如将 2.3456789保存为 2.345679

总结

将csv文件转换asc文件的简要记录。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有