Python xóa n dòng đầu tiên khỏi tệp csv

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách phân tích cú pháp các giá trị từ các tệp Giá trị được phân tách bằng dấu phẩy [CSV] bằng nhiều tiện ích tích hợp Bash khác nhau

Đầu tiên, chúng ta sẽ thảo luận về các điều kiện tiên quyết để đọc các bản ghi từ một tệp. Sau đó, chúng ta sẽ khám phá các kỹ thuật khác nhau để phân tích tệp CSV thành các biến Bash và danh sách mảng

Cuối cùng, chúng tôi sẽ kiểm tra một số công cụ của bên thứ ba để phân tích cú pháp CSV nâng cao

2. điều kiện tiên quyết

Hãy xem xét ngắn gọn các tiêu chuẩn được xác định cho tệp CSV

  1. Mỗi bản ghi nằm trên một dòng riêng biệt, được phân cách bằng dấu ngắt dòng
  2. Bản ghi cuối cùng trong tệp có thể hoặc không thể kết thúc bằng ngắt dòng
  3. Có thể có một dòng tiêu đề tùy chọn xuất hiện dưới dạng dòng đầu tiên của tệp có cùng định dạng với các dòng bản ghi thông thường
  4. Trong tiêu đề và bản ghi, có thể có một hoặc nhiều trường được phân tách bằng dấu phẩy
  5. Các trường chứa dấu ngắt dòng, dấu ngoặc kép và dấu phẩy phải được đặt trong dấu ngoặc kép
  6. Nếu dấu ngoặc kép được sử dụng để bao quanh các trường, thì dấu ngoặc kép xuất hiện bên trong trường phải được thoát bằng cách đặt trước nó bằng một dấu ngoặc kép khác

Các tệp CSV chứa các bản ghi có dấu phẩy hoặc ngắt dòng trong các chuỗi được trích dẫn không thuộc phạm vi của chúng tôi;

Bây giờ, hãy thiết lập tệp CSV mẫu tiêu chuẩn của chúng tôi

$ cat input.csv
SNo,Quantity,Price,Value
1,2,20,40
2,5,10,50

2. 1. Đọc bản ghi từ một tệp

Chúng tôi sẽ chạy một ví dụ để đọc các bản ghi từ tệp đầu vào của chúng tôi

#!/bin/bash
while read line
do
   echo "Record is : $line"
done < input.csv

Ở đây, chúng tôi đã sử dụng lệnh đọc để đọc các bản ghi được phân tách bằng dấu ngắt dòng [\n] của tệp CSV của chúng tôi. Chúng tôi sẽ kiểm tra đầu ra từ tập lệnh của chúng tôi

Record is : SNo,Quantity,Price,Value
Record is : 1,2,20,40
Record is : 2,5,10,50

Như chúng ta có thể thấy, có một sự phức tạp; . Vì vậy, hãy đi sâu vào các giải pháp

2. 2. Bỏ qua dòng tiêu đề

Chúng tôi sẽ chạy một ví dụ khác để loại trừ dòng tiêu đề khỏi đầu ra

#!/bin/bash
while read line
do
   echo "Record is : $line"
done < 

Chủ Đề