Insert new line in CSV at second row via Python
10,088
Solution 1
This is one approach using csv
module.
Demo:
import csv
toAdd = ["String", "String", "String", "String"]
with open(filename, "r") as infile:
reader = list(csv.reader(infile))
reader.insert(1, toAdd)
with open(filename, "w") as outfile:
writer = csv.writer(outfile)
for line in reader:
writer.writerow(line)
Solution 2
A simple solution could be:
import csv
row = ['String', ' String', ' String']
with open('file.csv', 'r') as readFile:
reader = csv.reader(readFile)
lines = list(reader)
lines.insert(1, row)
with open('file.csv', 'w') as writeFile:
writer = csv.writer(writeFile)
writer.writerows(lines)
readFile.close()
writeFile.close()
I could not try it. Please let me know if it works.
Author by
J. Skinner
Updated on June 04, 2022Comments
-
J. Skinner almost 2 years
Is it possible to insert a new line in a CSV file at the 2nd row? For example, I have a CSV with column names and their values:
meter_id, sdp_id, lat, lon 813711, 1331, 34.298, -83.113
The application I'm attempting to read this file into requires a new line added indicating the column type. In the above example all would be string, so the CSV would need to be:
meter_id, sdp_id, lat, lon String, String, String, String 813711, 1331, 34.298, -83.113
I've read several posts how to add a new line at the end of the CSV, but couldn't find anything on how to do the above.
-
Mike Scotty almost 6 yearsPossible duplicate of Insert line at middle of file with Python?
-
-
J. Skinner almost 6 yearsThanks, one thing I'm noticing is that this is adding an extra row between each row in the updated CSV.
-
J. Skinner almost 6 yearsthank you for this answer. It's working, but it is entering an empty row between is row in the updated CSV.
-
Rakesh almost 6 yearsUse
with open(filename, "w", newline='') as outfile:
if you are in python3 -
J. Skinner almost 6 yearsI'm using Python 2.7.14.
-
Rakesh almost 6 yearsThen use
with open(filename, "wb") as outfile: