我有一個數據矩陣的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