python去除csv文件中每一行的多餘字符

動機

最近處理csv文件的時候,遇到了某些行的行尾出現多餘的分號的情況,而我在使用這些csv文件的時候,這些分號會導致程序運行錯誤,所以就需要將這些多餘的分號去除,csv的形式如下:

image_path annotation
path/to/image1 2 x1 y1 x2 y2;1 x1 y1 x2 y2
path/to/image2 1 x1 y1 x2 y2;
path/to/image3 2 x1 y1 x2 y2

解決方案

這種情況可以使用python進行解決,具體步驟如下:

  1. 假設需要處理的csv文件爲train.csv,首先需要使用python對其進行讀取
file = open("train.csv", "r")  # 只讀模式讀取train.csv文件
lines = []  # lines列表存儲每一行的內容
for i in file:
    lines.append(i)  # 遍歷每一行內容進行存儲
file.close()  # 讀取完畢
  1. 然後使用for循環對每一行內容進行處理,若行尾有分號,則去除
new = []  # 用於存儲處理後的每一行內容
for line in lines:
	if line[:-1].endswith(";"):  # 若該行以分號結尾
		tmp = line[:-1].rstrip(";")  # 去除該分號
		new.append(tmp + "\n")  # 結尾加上換行符並存儲
	else:
	    new.append(line)  # 若不以分號結尾,則直接存儲
  1. 假設要生成的新的csv文件爲train_new.csv,則將new中的內容寫入即可
file_write_object = open("train_new.csv", "w")  # 寫入模式
for var in new:
    file_write_object.writelines(var)
file_write_object.close()

結果

image_path annotation
path/to/image1 2 x1 y1 x2 y2;1 x1 y1 x2 y2
path/to/image2 1 x1 y1 x2 y2
path/to/image3 2 x1 y1 x2 y2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章