我有一个数据矩阵的csv文件。当最初的csv文件在记事本中打开它看起来像这样:如何使用csv模块添加列?
“AAA,15.0” “BBB,45.0” “CCC,60.0”
那么我想处理这些数据,加入另一列得到格式化的东西如下:
“AAA,15.0,50.0” “BBB,45.0,30.0” “CCC,60.0,20.0”
所以....... 我打开原始文件转化为Python使用:
with open((FilePath"/XXX.csv"), 'rt') as csvfile:
NewData = list(csv.reader(csvfile, delimiter=';'))
print(NewData)
我第一次做这样的代码产生的字符串(这我其实很高兴 - 我想这个格式)的列表...
[“AAA,15.0,50.0”,' BBB,45.0,30.0' , 'CCC,60.0,20.0']
但随后下一次我尝试添加一列我结束了....
[ 'AAA,15.0,50.0' ],['BBB,45.0,30.0'],['CCC,60.0,20.0']]
因此,每次我的代码运行时,它都会增加一层'li刺'。
我需要做些什么来保持字符串列表的初始格式?我想这是因为我用list()命令打开文件。我应该使用什么?
进一步细节要求.........
蒸馏这进一步...我的代码...
import csv
FilePathSB="C:/Users/"
with open((FilePathSB+"/Master.csv"), 'rt') as csvfile:
xMatrix = list(csv.reader(csvfile, delimiter=';'))
####Do something to the data like add another column of numbers
#SaveAs same file
with open(FilePathSB+"/Master.csv", "w") as output:
writer=csv.writer(output,lineterminator='\n')
for val in xMatrix:
writer.writerow([val])
注意,有一些数据操纵这是在文件打开时发生的,但这不会影响我所遇到的问题,因此我已将代码保留了出来。
打开文件,然后保存它,每次代码运行时都会添加一层“列表”。我希望格式保持不变(即尽管打开然后重新保存,我希望数据格式与下面显示的初始矩阵相同)。
因此,代码运行时,它第一次打开的初始CSV数据:
"AAA,24:17"
"BBB,21:18"
"CCC,16:40"
和变化并将其作为格式:
"['AAA,24:17']"
"['BBB,21:18']"
"['CCC,16:40']"
如果我再次运行该代码需要此数据并将其更改为:
"[""['AAA,24:17']""]"
"[""['BBB,21:18']""]"
"[""['CCC,16:40']""]"
如果我再次运行它,我结束了:
"['[""[\'AAA,24:17\']""]']"
"['[""[\'BBB,21:18\']""]']"
"['[""[\'CCC,16:40\']""]']"
我想我们还需要看看您如何写入文件。 – Kevin
我很困惑你的意思是“下一次”。代码中没有循环,所以这只会运行一次。也不清楚你是什么“添加一列”,或如何。文件?列表?确保你向我们展示了所有相关的代码。 – Brionius
我想我们都可以同意我们需要查看代码的其他相关部分(或者至少代表它们的示例代码) – jamylak