Python ký tự thoát trình đọc csv
Hãy đối mặt với nó. bạn cần lấy thông tin vào và ra khỏi chương trình của mình không chỉ thông qua bàn phím và bảng điều khiển. Trao đổi thông tin qua tệp văn bản là cách phổ biến để chia sẻ thông tin giữa các chương trình. Một trong những định dạng phổ biến nhất để trao đổi dữ liệu là định dạng CSV. Nhưng làm thế nào để bạn sử dụng nó? Show
Hãy làm rõ một điều. bạn không phải (và bạn sẽ không) xây dựng trình phân tích cú pháp CSV của riêng mình từ đầu. Có một số thư viện hoàn toàn chấp nhận được mà bạn có thể sử dụng. Thư viện Python 7 sẽ hoạt động trong hầu hết các trường hợp. Nếu công việc của bạn yêu cầu nhiều dữ liệu hoặc phân tích số, thư viện 8 cũng có khả năng phân tích cú pháp CSV, sẽ xử lý phần còn lạiTrong bài viết này, bạn sẽ tìm hiểu cách đọc, xử lý và phân tích cú pháp CSV từ tệp văn bản bằng Python. Bạn sẽ thấy các tệp CSV hoạt động như thế nào, tìm hiểu thư viện 7 cực kỳ quan trọng được tích hợp trong Python và xem cách phân tích cú pháp CSV hoạt động bằng thư viện 8Vậy hãy bắt đầu Tải xuống miễn phí. Nhận một chương mẫu từ Python Basics. Giới thiệu thực tế về Python 3 để xem cách bạn có thể đi từ trình độ mới bắt đầu lên trình độ trung cấp trong Python với một chương trình giảng dạy hoàn chỉnh, cập nhật về Python 3. 8 Lấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Đọc và ghi tệp CSV bằng Python” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian Lấy bài kiểm tra " Tệp CSV là gì?Tệp CSV (tệp Giá trị được phân tách bằng dấu phẩy) là một loại tệp văn bản thuần túy sử dụng cấu trúc cụ thể để sắp xếp dữ liệu dạng bảng. Bởi vì nó là một tệp văn bản thuần túy, nên nó chỉ có thể chứa dữ liệu văn bản thực—nói cách khác, các ký tự ASCII hoặc Unicode có thể in được Cấu trúc của tệp CSV được đặt theo tên của nó. Thông thường, các tệp CSV sử dụng dấu phẩy để phân tách từng giá trị dữ liệu cụ thể. Đây là cấu trúc đó trông như thế nào
Lưu ý cách mỗi phần dữ liệu được phân tách bằng dấu phẩy. Thông thường, dòng đầu tiên xác định từng phần dữ liệu—nói cách khác, tên của cột dữ liệu. Mỗi dòng tiếp theo sau đó là dữ liệu thực tế và chỉ bị giới hạn bởi các ràng buộc về kích thước tệp Nói chung, ký tự phân cách được gọi là dấu phân cách và dấu phẩy không phải là ký tự duy nhất được sử dụng. Các dấu phân cách phổ biến khác bao gồm các ký tự tab (_______51), dấu hai chấm ( 2) và dấu chấm phẩy ( 3). Phân tích đúng tệp CSV yêu cầu chúng tôi biết dấu phân cách nào đang được sử dụngLoại bỏ các quảng cáoTệp CSV đến từ đâu?Các tệp CSV thường được tạo bởi các chương trình xử lý lượng lớn dữ liệu. Chúng là một cách thuận tiện để xuất dữ liệu từ bảng tính và cơ sở dữ liệu cũng như nhập hoặc sử dụng dữ liệu đó trong các chương trình khác. Ví dụ: bạn có thể xuất kết quả của chương trình khai thác dữ liệu sang tệp CSV rồi nhập tệp đó vào bảng tính để phân tích dữ liệu, tạo biểu đồ cho bản trình bày hoặc chuẩn bị báo cáo để xuất bản Các tệp CSV rất dễ làm việc theo chương trình. Bất kỳ ngôn ngữ nào hỗ trợ nhập tệp văn bản và thao tác chuỗi (như Python) đều có thể hoạt động trực tiếp với tệp CSV Phân tích tệp CSV bằng Thư viện CSV tích hợp của PythonThư viện 7 cung cấp chức năng đọc và ghi vào tệp CSV. Được thiết kế để hoạt động vượt trội với các tệp CSV do Excel tạo, nó có thể dễ dàng điều chỉnh để hoạt động với nhiều định dạng CSV khác nhau. Thư viện 7 chứa các đối tượng và mã khác để đọc, ghi và xử lý dữ liệu từ và đến các tệp CSVĐọc tệp CSV với import csv with open('employee_birthday.txt') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') line_count = 0 for row in csv_reader: if line_count == 0: print(f'Column names are {", ".join(row)}') line_count += 1 else: print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.') line_count += 1 print(f'Processed {line_count} lines.') 7Việc đọc từ tệp CSV được thực hiện bằng đối tượng 7. Tệp CSV được mở dưới dạng tệp văn bản với hàm 8 tích hợp sẵn của Python, trả về một đối tượng tệp. Điều này sau đó được chuyển đến 7, thực hiện công việc nâng vật nặngĐây là tệp 40 4Đây là mã để đọc nó
Điều này dẫn đến đầu ra sau
Mỗi hàng được trả về bởi 7 là danh sách gồm các phần tử 42 chứa dữ liệu được tìm thấy bằng cách xóa các dấu phân cách. Hàng đầu tiên được trả về chứa tên cột, được xử lý theo cách đặc biệtĐọc tệp CSV vào từ điển với import csv with open('employee_birthday.txt') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') line_count = 0 for row in csv_reader: if line_count == 0: print(f'Column names are {", ".join(row)}') line_count += 1 else: print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.') line_count += 1 print(f'Processed {line_count} lines.') 7Thay vì xử lý danh sách các phần tử 42 riêng lẻ, bạn cũng có thể đọc dữ liệu CSV trực tiếp vào từ điển (về mặt kỹ thuật là Từ điển được sắp xếp)Một lần nữa, tệp đầu vào của chúng tôi, 40 như sau 4Đây là mã để đọc nó như một cuốn từ điển lần này 4Điều này dẫn đến đầu ra giống như trước đây
Các khóa từ điển đến từ đâu? . Nếu bạn không có những thứ này trong tệp CSV của mình, bạn nên chỉ định các khóa của riêng mình bằng cách đặt tham số tùy chọn 46 thành danh sách chứa chúngLoại bỏ các quảng cáoTham số Python CSV Column names are name, department, birthday month John Smith works in the Accounting department, and was born in November. Erica Meyers works in the IT department, and was born in March. Processed 3 lines. 7 tùy chọnĐối tượng 7 có thể xử lý các kiểu tệp CSV khác nhau bằng cách chỉ định , một số kiểu được hiển thị bên dưới
Các thông số này xứng đáng được giải thích thêm. Giả sử bạn đang làm việc với tệp 44 sau 5Tệp CSV này chứa ba trường. 45, 46 và 47, được phân cách bằng dấu phẩy. Vấn đề là dữ liệu cho trường 46 cũng chứa dấu phẩy để biểu thị mã zipCó ba cách khác nhau để xử lý tình huống này
Viết tệp CSV bằng import csv with open('employee_birthday.txt') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') line_count = 0 for row in csv_reader: if line_count == 0: print(f'Column names are {", ".join(row)}') line_count += 1 else: print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.') line_count += 1 print(f'Processed {line_count} lines.') 7Bạn cũng có thể ghi vào tệp CSV bằng đối tượng 3 và phương thức 4 6Tham số tùy chọn 41 cho 3 biết ký tự nào sẽ được sử dụng để trích dẫn các trường khi viết. Tuy nhiên, việc trích dẫn có được sử dụng hay không được xác định bởi tham số tùy chọn 7
Đọc lại tệp ở dạng văn bản thuần túy cho thấy tệp được tạo như sau 6Viết tệp CSV từ một từ điển với import csv with open('employee_birthday.txt') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') line_count = 0 for row in csv_reader: if line_count == 0: print(f'Column names are {", ".join(row)}') line_count += 1 else: print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.') line_count += 1 print(f'Processed {line_count} lines.') 7Vì bạn có thể đọc dữ liệu của chúng tôi trong từ điển, nên thật công bằng khi bạn cũng có thể viết nó ra từ từ điển 40Khác với 65, tham số 46 là bắt buộc khi viết từ điển. Điều này có ý nghĩa, khi bạn nghĩ về nó. không có danh sách 46, 68 không thể biết sử dụng khóa nào để truy xuất giá trị từ từ điển của bạn. Nó cũng sử dụng các phím trong 46 để viết ra hàng đầu tiên dưới dạng tên cộtĐoạn mã trên tạo ra tệp đầu ra sau 41Loại bỏ các quảng cáoPhân tích tệp CSV bằng Thư viện import csv with open('employee_birthday.txt') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') line_count = 0 for row in csv_reader: if line_count == 0: print(f'Column names are {", ".join(row)}') line_count += 1 else: print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.') line_count += 1 print(f'Processed {line_count} lines.') 8Tất nhiên, thư viện Python CSV không phải là trò chơi duy nhất trong thị trấn. cũng có thể có trong 8. Rất khuyến khích nếu bạn có nhiều dữ liệu để phân tích 8 là một thư viện mã nguồn mở Python cung cấp các công cụ phân tích dữ liệu hiệu suất cao và cấu trúc dữ liệu dễ sử dụng. 8 có sẵn cho tất cả các cài đặt Python, nhưng nó là một phần quan trọng của bản phân phối Anaconda và hoạt động cực kỳ hiệu quả trong sổ ghi chép Jupyter để chia sẻ dữ liệu, mã, kết quả phân tích, trực quan hóa và văn bản tường thuậtCài đặt 8 và các phụ thuộc của nó trong 65 được thực hiện dễ dàng 42Như đang sử dụng 66/ 67 cho các bản cài đặt Python khác 43Chúng tôi sẽ không đi sâu vào chi tiết cụ thể về cách thức hoạt động của 8 hoặc cách sử dụng nó. Để biết cách xử lý chuyên sâu về cách sử dụng 8 để đọc và phân tích các tập dữ liệu lớn, hãy xem bài viết tuyệt vời của Shantnu Tiwari về cách làm việc với các tệp Excel lớn trong pandasĐọc tệp CSV với import csv with open('employee_birthday.txt') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') line_count = 0 for row in csv_reader: if line_count == 0: print(f'Column names are {", ".join(row)}') line_count += 1 else: print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.') line_count += 1 print(f'Processed {line_count} lines.') 8Để thể hiện một số sức mạnh của khả năng CSV của 8, tôi đã tạo một tệp phức tạp hơn một chút để đọc, được gọi là 402. Nó chứa dữ liệu về nhân viên công ty 44Đọc CSV thành 8 404 nhanh chóng và đơn giản 45Đó là nó. ba dòng mã và chỉ một trong số chúng đang thực hiện công việc thực tế. 405 mở, phân tích và đọc tệp CSV được cung cấp và lưu trữ dữ liệu trong DataFrame. In kết quả 404 ở đầu ra sau 46Sau đây là một số điểm đáng lưu ý
Hãy giải quyết từng vấn đề một. Để sử dụng một cột khác làm chỉ mục 404, hãy thêm tham số tùy chọn 416 48Bây giờ trường 417 là chỉ mục 404 của chúng tôi 49Tiếp theo, hãy sửa kiểu dữ liệu của trường 413. Bạn có thể buộc 8 đọc dữ liệu dưới dạng ngày với tham số tùy chọn 421, được định nghĩa là danh sách các tên cột để coi là ngày 0Lưu ý sự khác biệt trong đầu ra 1Ngày hiện được định dạng đúng, dễ dàng xác nhận trong chế độ tương tác >>> 2Nếu tệp CSV của bạn không có tên cột trong dòng đầu tiên, bạn có thể sử dụng tham số tùy chọn 422 để cung cấp danh sách tên cột. Bạn cũng có thể sử dụng điều này nếu bạn muốn ghi đè tên cột được cung cấp trong dòng đầu tiên. Trong trường hợp này, bạn cũng phải yêu cầu 405 bỏ qua các tên cột hiện có bằng cách sử dụng tham số tùy chọn 424 3Lưu ý rằng, vì tên cột đã thay đổi nên các cột được chỉ định trong tham số tùy chọn 416 và 421 cũng phải được thay đổi. Điều này bây giờ dẫn đến đầu ra sau 4Loại bỏ các quảng cáoViết tệp CSV bằng import csv with open('employee_birthday.txt') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') line_count = 0 for row in csv_reader: if line_count == 0: print(f'Column names are {", ".join(row)}') line_count += 1 else: print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.') line_count += 1 print(f'Processed {line_count} lines.') 8Tất nhiên, nếu bạn không thể lấy lại dữ liệu của mình từ 8, thì điều đó cũng chẳng có ích gì cho bạn. Viết một 404 vào tệp CSV cũng dễ dàng như đọc một tệp trong. Hãy ghi dữ liệu với tên cột mới vào tệp CSV mới 5Sự khác biệt duy nhất giữa mã này và mã đọc ở trên là cuộc gọi 430 đã được thay thế bằng 431, cung cấp tên tệp. Tệp CSV mới trông như thế này 6Phần kết luậnNếu bạn hiểu những kiến thức cơ bản về đọc tệp CSV, thì bạn sẽ không bao giờ bị lúng túng khi cần xử lý việc nhập dữ liệu. Hầu hết các tác vụ đọc, xử lý và viết CSV có thể được xử lý dễ dàng bằng thư viện Python cơ bản 7. Nếu bạn có nhiều dữ liệu cần đọc và xử lý, thư viện 8 cũng cung cấp khả năng xử lý CSV nhanh chóng và dễ dàngLấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Đọc và ghi tệp CSV bằng Python” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian Lấy bài kiểm tra " Có cách nào khác để phân tích tệp văn bản không? . Các thư viện như ANTLR, PLY và PlyPlus đều có thể xử lý phân tích cú pháp hạng nặng và nếu thao tác 42 đơn giản không hoạt động, thì luôn có các biểu thức chính quyNhưng đó là những chủ đề cho các bài viết khác… Tải xuống miễn phí. Nhận một chương mẫu từ Python Basics. Giới thiệu thực tế về Python 3 để xem cách bạn có thể đi từ trình độ mới bắt đầu lên trình độ trung cấp trong Python với một chương trình giảng dạy hoàn chỉnh, cập nhật về Python 3. 8 Đánh dấu là đã hoàn thành Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Đọc và ghi tệp CSV 🐍 Thủ thuật Python 💌 Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python Gửi cho tôi thủ thuật Python » Giới thiệu về Jon Fincher Jon đã dạy Python và Java tại hai trường trung học ở Bang Washington. Trước đây, ông là Giám đốc Chương trình tại Microsoft » Thông tin thêm về JonMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là Aldren Geir Arne Joanna Jason Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonista chuyên gia Nâng cao kỹ năng Python của bạn » Bậc thầy Kỹ năng Python trong thế giới thực Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bạn nghĩ sao? Đánh giá bài viết này Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì? Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi Những ký tự nào cần được thoát trong CSV?Giá trị dữ liệu có ký tự dấu phẩy là một phần của dữ liệu được đặt trong dấu ngoặc kép. Dấu ngoặc kép là một phần của dữ liệu được thoát bằng dấu ngoặc kép mặc dù giá trị trường được đặt trong dấu ngoặc kép. Ghi chú. Ở chế độ CSV, tất cả các ký tự đều quan trọng .
Làm cách nào để sử dụng trình đọc CSV Python?Đọc CSV bằng mô-đun có sẵn của Python có tên là csv bằng cách sử dụng csv. . Nhập thư viện csv. nhập csv Mở tệp CSV. Các. . Sử dụng tệp csv. đối tượng reader để đọc tệp CSV. csvreader = csv. người đọc (tập tin) Trích xuất tên trường. Tạo một danh sách trống gọi là tiêu đề. . Trích xuất các hàng/bản ghi. . Đóng tệp Một quotechar trong csv Python là gì?quotechar chỉ định ký tự được sử dụng để bao quanh các trường có chứa ký tự phân cách . Mặc định là dấu ngoặc kép ( ' " ' ). escapechar chỉ định ký tự được sử dụng để thoát khỏi ký tự phân cách, trong trường hợp dấu ngoặc kép không được sử dụng. |