Apr-19-2022, 01:12 AM
I'm trying to delete specific columns from a CSV file. The delete column works fine but the output of the columns remaining has changed. I need the column formats to be the same.
Input csv data: "Group","Title","URL","Notes"
ouput csv data: Group,Title,URL,Notes
Here is the code; I have only changed line 14
thinking that it was the delimiter that needed changing. yet the delimiter is fine, it is a comma input and a comma output.
What do I need to change in the code to ensure that each column (header and data) is encased in a double quote please ?
Input csv data: "Group","Title","URL","Notes"
ouput csv data: Group,Title,URL,Notes
Here is the code; I have only changed line 14
# Source from https://nitratine.net/blog/post/remove-columns-in-a-csv-file-with-python/ import csv input_file = 'input.csv' output_file = 'output.csv' cols_to_remove = [6, 7, 8, 9] # Column indexes to be removed (starts at 0) cols_to_remove = sorted(cols_to_remove, reverse=True) # Reverse so we remove from the end first row_count = 0 # Current amount of rows processed with open(input_file, "r") as source: reader = csv.reader(source) with open(output_file, "w", newline='') as result: writer = csv.writer(delimiter = '"', result) for row in reader: row_count += 1 print('\r{0}'.format(row_count), end='') # Print rows processed for col_index in cols_to_remove: del row[col_index] writer.writerow(row)
Quote: File "remove_cols_csv3.py", line 14
writer = csv.writer(delimiter = '"', result)
^
SyntaxError: positional argument follows keyword argument
thinking that it was the delimiter that needed changing. yet the delimiter is fine, it is a comma input and a comma output.
What do I need to change in the code to ensure that each column (header and data) is encased in a double quote please ?