0

我正在使用 Jython/Python 2 脚本在 Ignition 软件中开发代码。我们需要从 csv 文件中读取数据,该文件在标题中具有两个分隔符“,”,在数据中具有“\t”。我们使用的代码是:

file_path = r'T:\test1.csv'
csvData = csv.reader(open(file_path, 'r'))
header = csvData.next() # Skip the fist row
dataset = system.dataset.toDataSet(header,list(csvData))
calcwindow.rootContainer.getComponent('Power Table').data = dataset

应用此代码后,我们得到: Power Table

问题是我们如何分离数据,以便所有行和列都与 csv.reader 匹配,因为点火不支持 panda 或 re :(

更新代码,现在它可以正确分离数据:

csvData = csv.reader(open(file_path, 'r'),delimiter=',')
header = csvData.next()# Skip the fist row
for line in csvData:
    str1 = "".join(line) #removes commas
    #print str1
    parts = str1.split("\t")
    print parts
dataset = system.dataset.toDataSet(header,list(parts))
calcwindow.rootContainer.getComponent('Power Table').data = dataset

,但出现了错误代码:

第 0 行的列数与标题列表不同。

有什么建议么??

谢谢伊戈尔

4

1 回答 1

0

我自己想办法。

这是代码:

        file_path = r'T:\test1.csv'
    try:
        file = open(file_path)
        csvData = csv.reader(file,delimiter=',') # open the file with comma delimiter
        header = csvData.next()# Skip the fist row
        csvData1 = list(csvData) # create list from data
        lstLine = csvData1[-1] # selects last line added
        str1 = "".join(lstLine) #removes commas and create string
        parts = str1.split("\t") #split string back into list
        dataset = system.dataset.toDataSet(header,[parts])
        calcwindow.rootContainer.getComponent('Power Table').data = dataset
        file.close()
    except:
        print "CSV busy exporting from TIA software"

希望它会帮助任何人。

于 2021-11-16T13:49:27.910 回答