Hướng dẫn dùng delimiter excel python

Hướng dẫn cách xử lý file CSV trong python. Bạn sẽ học được cách ghi file csv trong python bằng cách dùng list với hàm csv.writer hay dùng dictionary bằng class csv.DictWriter . Bạn cũng sẽ học được cách ghi file csv trong python với các trường hợp đặc biệt như ghi chèn file CSV, ghi file CSV chứa dấu ngoặc kép, chứa header v.v.. sau bài học này.

Ghi file csv trong python | csv.writer

Ghi list vào file csv trong python

Để ghi list vào file csv trong python, trước hết chúng ta cần mở file đó bằng hàm open[] hoặc câu lệnh with với mode w, sau đó tiến hành ghi file csv đã mở bằng hàm csv.writer[] như sau:

with open['./user/user.csv','w'] as f:
writer = csv.writer[f]
writer.writerow[[0, 1, 2]]
writer.writerow[['a', 'b', 'c']]

Lưu ý là do chúng ta mở file với mode w nên nếu file CSV đã tồn tại trước đó thì nội dung cũ sẽ bị xóa đi, và chúng ta sẽ ghi đè nội dung mới vào file CSV.

Sau khi mở file bằng hàm open[], chúng ta thu về một file object và gán nó vào biến f. Sau đó chúng ta chỉ định f làm đối số của hàm csv.writer[], kết quả là một writer object có khả năng ghi nội dung được tạo ra.

Sau khi tạo xong writer object này, chúng ta có thể sử dụng các phương thức như writerow[] mà chúng ta đã dùng trong ví dụ trên với writer object để ghi nội dung từ một list vào file csv trong python.

Ở ví dụ trên, chúng ta đã ghi hai dòng nội dung vào file csv. Hãy kiểm tra nội dung đã ghi bằng lệnh sau:

with open['./user/user.csv','w'] as f:
print[f.read[]]


Nếu chúng ta chỉ định đối số của phương thức writerow[] ở trên là một list đa chiều, thì từng list trong list đa chiều sẽ được ghi vào file csv như là một hàng vậy.

l = [[11, 12, 13, 14], [21, 22, 23, 24], [31, 32, 33, 34]]
print[l]


with open['./user/user.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[l]

with open['./user/user.csv'] as f:
print[f.read[]]



Ghi chèn file csv trong python | mode a

Để ghi chèn nội dung vào một file csv đã tồn tại trước đó, chúng ta mở file csv bằng hàm open[] với mode a. Về cách ghi file csv thì cũng giống như phần trên, chúng ta cũng dùng hàm csv.write và các phương thức như writerow[] hoặc writerows[] để ghi file csv trong python.

with open['./user/user.csv', 'a'] as f:
writer = csv.writer[f]
writer.writerow[['X', 'Y', 'Z']]

with open['./user/user.csv'] as f:
print[f.read[]]



Chỉ định dấu phân cách delimiter khi ghi file csv

Về mặc định trong file csv, dấu phân cách sẽ là dấu phẩy ,. Tuy nhiên nếu bạn muốn thay đổi dấu phân cách trong file csv đang ghi, hãy chỉ định đối số delimiter trong hàm csv.writer.

Ví dụ, chúng ta chỉ định ký tự phân cách là ký tự tab \t như sau:

with open['./user/user.tsv', 'w'] as f:
writer = csv.writer[f, delimiter='\t']
writer.writerows[l]

with open['./user/user.tsv'] as f:
print[f.read[]]



Trong trường hợp bạn muốn thay thể ký tự phân cách bằng ký tự trắng, chỉ cần chỉ định delimiter=' ' là xong.

Xử lý dấu ngoặc kép khi ghi file csv trong python

Về mặc định khi ghi file csv thì các chuỗi ký tự chứa trong nó ký tự phân cách, ví dụ như là dấu phẩy , trong chuỗi a,b,c chẳng hạn sẽ được ghi vào file csv kèm với dấu ngoặc kép như sau:

l = [[0, 1, 2], ['a,b,c', 'x', 'y']]

with open['./user/user_quote.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[l]

with open['./user/user_quote.csv'] as f:
print[f.read[]]


Trong trường hợp bạn muốn thêm dấu ngoặc kép vào tất cả các chuỗi ký tự ghi vào file csv trong python, hãy chỉ định đối số quoting=csv.QUOTE_ALL trong hàm csv.writer như sau:

with open['./user/user_quote_all.csv', 'w'] as f:
writer = csv.writer[f, quoting=csv.QUOTE_ALL]
writer.writerows[l]

with open['./user/user_quote_all.csv'] as f:
print[f.read[]]


Ngoài ra, bạn cũng có thể chỉ định quoting=csv.QUOTE_NONNUMERIC để thêm dấu ngoặc kép vào tất cả các chuỗi không phải là chữ số như sau:

with open['./user/user_quote_nonnumeric.csv', 'w'] as f:
writer = csv.writer[f, quoting=csv.QUOTE_NONNUMERIC]
writer.writerows[l]

with open['./user/user_quote_nonnumeric.csv'] as f:
print[f.read[]]


Nếu chỉ định csv.QUOTE_NONE thì tất cả các chuỗi ký tự sẽ không được thêm dấu ngoặc kép khi ghi vào file csv. Tuy nhiên chúng ta cần chỉ định thêm giá trị escapechar để xử lý dấu phân cách chứa trong chuỗi ký tự đó nếu có.

with open['./user/user_quote_none.csv', 'w'] as f:
writer = csv.writer[f, quoting=csv.QUOTE_NONE, escapechar='\\']
writer.writerows[l]

with open['./user/user_quote_none.csv'] as f:
print[f.read[]]


Cuối cùng, về mặc định thì dấu ngoặc kép được dùng, tuy nhiên chúng ta cũng có thể thay đổi thành dấu khác bằng cách chỉ định quotechar như sau:

with open['./user/user_quote_char.csv', 'w'] as f:
writer = csv.writer[f, quotechar="'"]
writer.writerows[l]

with open['./user/user_quote_char.csv'] as f:
print[f.read[]]


Ghi file csv kèm ký tự xuống dòng

Trong một số trường hợp, chúng ta cần ghi chuỗi ký tự tồn tại cả ký tự xuống dòng vào file csv, chẳng hạn như chuỗi 'a\nb' trong file csv sau đây:

Bài viết liên quan

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> python cơ bản - lập trình python cho người mới bắt đầu>>17. csv excel json xml pdf

Bài sau
Ghi log trong python bằng file CSV
Bài tiếp
Đọc file excel trong python
  • Bài viết mới nhất
  • Tách chuỗi trong PHP [explode, preg_split] tháng 9 17, 2022
  • Cắt chuỗi trong PHP [substr, mb_substr] tháng 9 17, 2022
  • Tách chuỗi thành mảng trong PHP [explode] tháng 9 17, 2022
  • Tìm kiếm chuỗi trong PHP [strpos] tháng 9 17, 2022
  • Đếm số lần xuất hiện của ký tự và chuỗi trong chuỗi PHP [substr_count] tháng 9 17, 2022
  • Chuyển chuỗi thành mảng trong PHP [str_split, mb_str_split] tháng 9 17, 2022
  • Tách từng ký tự trong chuỗi PHP [substr, preg_split] tháng 9 17, 2022
  • Xóa ký tự trong chuỗi PHP tháng 9 15, 2022
Profile

Tác giả : Kiyoshi [Chis Thanh]

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.

Chủ Đề