june
june

Reputation: 25

How can I remove header from csv or txt file?

I chose csv's specific column and converted it to txt.

The selected column name is 'id' (header) and I don't know how to remove that 'id' from txt.

This is my code..

import csv
with open('garosu_example.csv') as file:
    reader = csv.reader(file)

input_file = "garosu_example.csv"
output_file = "garosu_example.txt"

id = ['id']
selected_column_index = []

with open(input_file, 'r', newline='') as csv_in_file:
    with open(output_file, 'w', newline='/n') as csv_out_file:
        freader = csv.reader(csv_in_file)
        fwriter = csv.writer(csv_out_file)
        header = next(freader)
        for index_value in range(len(header)):
            if header[index_value] in id:
                selected_column_index.append(index_value)
        print(id)
        fwriter.writerow(id)
        for row_list in freader:
            row_list_output = []
            for index_value in selected_column_index:
                row_list_output.append(row_list[index_value])
            print(row_list_output)
            f.writer.writerow(row_list_output)

How can I remove 'id'(header) from txt file?

If I remove header in csv, output txt file is emptyT_T

Here is an example of my csv file

Upvotes: 1

Views: 3663

Answers (3)

Eric
Eric

Reputation: 2729

Another way you can try is to use pandas to manipulate your csv file.

An example of using pandas to manipulate the csv file would be

import pandas as pd

df = pd.read_csv("<Your-CSV-file>", columns=["id", "name", "longitude", "latitude"])
df.drop(columns=["id"])  ## this will drop the column named id
df.to_csv("<Your-New-CSV-file-Path>", index=None, header=True)

Hope it helps.

Upvotes: 1

U13-Forward
U13-Forward

Reputation: 71580

Another way with readlines and writelines:

with open('filename.csv') as f:
    with open('no_header.csv', 'w') as f2:
        f2.writelines(f2.readlines()[1:])

Upvotes: 4

Alec
Alec

Reputation: 9546

You can skip the first line and replace the document with everything after:

with open(file) as f:
    with open("file_without_header.csv",'w') as nh:
        next(f)
        for l in f:
            nh.write(l)

Upvotes: 1

Related Questions