0

我正在从 csv 文件生成一个网表文件,如下所示,我试图在生成它后抑制该文件文本的最后一个字符“,”,但我不能

module Filtre(E[0],E[1],E[2],E[3],S[0],S[1],S[2],S[3],);

预期结果:

module Filtre(E[0],E[1],E[2],E[3],S[0],S[1],S[2],S[3]);

我生成网表文件的功能:

fichNet = open('Netlist.v', 'r+')
def readColCSV(fichier):
    with open(fichier, 'r') as read_obj:
        csv_dict_reader = DictReader(read_obj)
        entete = csv_dict_reader.fieldnames[0]
        fichNet.writelines('\nmodule {}('.format(entete))
        for row in csv_dict_reader:
            if 'E' in row['pin name'] or 'S' in row['pin name']:
                fichNet.writelines('{},'.format(row['pin name']))
        fichNet.writelines(');\n\n')
4

2 回答 2

0

将您的功能更改为:

fichNet = open('Netlist.v', 'r+')
def readColCSV(fichier):
    with open(fichier, 'r') as read_obj:
        csv_dict_reader = DictReader(read_obj)
        entete = csv_dict_reader.fieldnames[0]
        fichNet.writelines('\nmodule {}('.format(entete))
        for row in csv_dict_reader:
            if 'E' in row['pin name'] or 'S' in row['pin name']:
                if csv_dict_reader.index(row) != csv_dict_reader[-1]:
                    fichNet.writelines('{},'.format(row['pin name']))
                else:
                    fichNet.writelines('{}'.format(row['pin name']))
        fichNet.writelines(');\n\n')
于 2020-05-16T16:59:17.593 回答
0

它将起作用,创建一个空列表,将您的字符串添加到列表中并与“,”连接,这样它就不会在字符串的末尾写“,”。

fichNet = open('Netlist.v', 'r+')
def readColCSV(fichier):
    with open(fichier, 'r') as read_obj:
        csv_dict_reader = DictReader(read_obj)
        entete = csv_dict_reader.fieldnames[0]
        fichNet.writelines('\nmodule {}('.format(entete))
        #Add here
        l=[]
        for row in csv_dict_reader:
            if 'E' in row['pin name'] or 'S' in row['pin name']:
                #Change here
                l+=[row['pin name']]
        #Change here
        fichNet.writelines(','.join(l)+');\n\n')
于 2020-05-16T17:00:53.550 回答