python 小程序 —— csv文件写入文件

# This is a sample Python script.
import sys
import re
import os

def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.

def writeLcf(fw, lcfData, csvSS):
    csvTile = [2, 3, 4, 5, 6, 7,    # L_Fx L_Fy L_Fz L_Tx L_Ty L_Tz
               8, 9, 10, 11, 12, 13]    # R_Fx R_Fy R_Fz R_Tx R_Ty R_Tz
    lcfTile = [10, 2, 0, 14, 16, 8,  # brake_l lat_l whl_z_l otm_l rollres_l align_l
               11, 3, 1, 15, 17, 9]  # brake_r lat_r whl_z_r otm_r rollres_r align_r
    sig = 0
    csvSS[13] = csvSS[13].strip('\n')
    for index in range(len(csvSS)):
        if csvSS[index] == "0":
            csvSS[index] = "0.0"

    for s in lcfData:
        oss = s
        if "whl_z_l      whl_z_r        lat_l        lat_r      dam_rad_l " in s:
            sig = 1;
        elif sig == 1:
            ss = s.split()
            # replace
            for index in range(len(csvTile)):
                ss[lcfTile[index]] = csvSS[csvTile[index]]
            oss = "  ".join(ss)
            oss = oss + "\n"
        fw.write(oss)

if __name__ == '__main__':

    print("csv文件:")
    csvFile = input()
    print("lcf 文件:")
    lcfFile = input()

    dirpath = os.path.dirname(csvFile)  # 获取当前文件的文件夹路径
    dirpath = dirpath + "\\"

    fr = open(csvFile, "r")     # csv 文件读取
    inData = fr.readlines()
    fr.close()
    fr = open(lcfFile, "r")  # lcf 文件读取
    lcfData = fr.readlines()
    fr.close()

    for s in inData:
        csvSS = s.split(",")
        if csvSS[0].isdigit():
            if int(csvSS[0]) > 1:      # 从第二行开始
                # 获取文件名
                wName = dirpath + csvSS[1] + ".lcf"
                #打开文件 并写入
                fw = open(wName, "w")
                writeLcf(fw, lcfData, csvSS)

                # 关闭文件
                fw.close()
                print(wName)
    print_hi('done')

  

posted @ 2021-04-07 19:53  博客园—哆啦A梦  阅读(140)  评论(0)    收藏  举报