Các loại tệp trong Python

Gần đây, tôi đã bắt gặp rất nhiều nhà khoa học dữ liệu đầy tham vọng thắc mắc tại sao việc nhập các định dạng tệp khác nhau bằng Python lại khó đến vậy. Hầu hết các bạn có thể quen thuộc với hàm read_csv() trong Pandas nhưng mọi thứ trở nên rắc rối từ đó

Làm cách nào để đọc tệp JSON bằng Python?

Và việc thành thạo các định dạng tệp này là rất quan trọng đối với thành công của bạn trong ngành khoa học dữ liệu. Bạn sẽ làm việc với tất cả các loại định dạng tệp được thu thập từ nhiều nguồn dữ liệu – đó là thực tế của thời đại kỹ thuật số hiện đại mà chúng ta đang sống

Vì vậy, trong bài viết này, tôi sẽ giới thiệu cho bạn một số định dạng tệp phổ biến nhất mà một nhà khoa học dữ liệu nên biết. Chúng ta sẽ học cách đọc chúng bằng Python để bạn có sự chuẩn bị tốt trước khi bước vào chiến trường

Tôi thực sự khuyên bạn nên tham gia khóa học 'Python cho Khoa học dữ liệu' phổ biến của chúng tôi nếu bạn chưa quen với ngôn ngữ lập trình Python. Nó miễn phí và đóng vai trò là điểm khởi đầu hoàn hảo trong hành trình của bạn

Mục lục

  • Trích xuất từ ​​​​các tệp Zip trong Python
  • Đọc tệp văn bản trong Python
  • Nhập tệp CSV bằng Python bằng Pandas
  • Đọc tệp Excel bằng Python
  • Nhập dữ liệu từ cơ sở dữ liệu bằng Python
  • Làm việc với các tệp JSON trong Python
  • Đọc dữ liệu từ tệp Pickle trong Python
  • Quét web bằng Python
  • Đọc tệp hình ảnh bằng PIL
  • Đọc nhiều tệp bằng Glob

Trích xuất từ ​​​​tệp Zip bằng Python

Các tệp zip là một món quà từ các vị thần mã hóa. Giống như chúng từ trên trời rơi xuống để tiết kiệm không gian và thời gian lưu trữ của chúng tôi. Các lập trình viên trường học cũ và người dùng máy tính chắc chắn sẽ liên quan đến cách chúng tôi sử dụng để sao chép các tệp cài đặt khổng lồ ở định dạng Zip

Nhưng về mặt kỹ thuật, ZIP là một định dạng tệp lưu trữ hỗ trợ nén dữ liệu không mất dữ liệu. Điều này có nghĩa là bạn không phải lo lắng về việc dữ liệu của mình bị mất trong quá trình nén-giải nén (Thung lũng Silicon, có ai không?)

Tại đây, hãy xem cách bạn có thể mở thư mục ZIP bằng Python. Đối với điều này, bạn sẽ cần thư viện tệp zip trong Python

Tôi đã nén tất cả các tệp cần thiết cho bài viết này trong một thư mục ZIP riêng, vì vậy hãy giải nén chúng

Khi bạn chạy đoạn mã trên, bạn có thể xem các tệp được giải nén trong cùng thư mục với tập lệnh Python của mình

Đọc tệp văn bản trong Python

Tệp văn bản là một trong những định dạng tệp phổ biến nhất để lưu trữ dữ liệu. Python giúp đọc dữ liệu từ tệp văn bản rất dễ dàng

Python cung cấp hàm open() để đọc các tệp lấy đường dẫn tệp và chế độ truy cập tệp làm tham số của nó. Để đọc tệp văn bản, chế độ truy cập tệp là 'r'. Tôi đã đề cập đến các chế độ truy cập khác bên dưới

  • 'w' - ghi vào một tập tin
  • 'r+' hoặc 'w+' – đọc và ghi vào tệp
  • 'a' - nối thêm vào một tệp đã tồn tại
  • ‘a+’ – thêm vào tệp sau khi đọc

Python cung cấp cho chúng ta 3 hàm đọc dữ liệu từ file text

  1. read(n) – Hàm này đọc n byte từ tệp văn bản hoặc đọc toàn bộ thông tin từ tệp nếu không có số nào được chỉ định. Nó đủ thông minh để xử lý các dấu phân cách khi gặp một dấu phân cách và tách các câu
  2. readline(n) – Chức năng này cho phép bạn đọc n byte từ tệp nhưng không nhiều hơn một dòng thông tin
  3. readlines() – Hàm này đọc toàn bộ thông tin trong tệp nhưng không giống như read(), nó không bận tâm về ký tự phân cách và cũng in chúng ở định dạng danh sách

Hãy cho chúng tôi xem các chức năng này khác nhau như thế nào khi đọc tệp văn bản

Hàm read() đã nhập tất cả dữ liệu trong tệp ở dạng có cấu trúc chính xác

Bằng cách cung cấp một số trong hàm read(), chúng tôi có thể trích xuất số lượng byte được chỉ định từ tệp

Sử dụng readline(), chỉ một dòng từ tệp văn bản được trích xuất

Ở đây, hàm readline() đã trích xuất tất cả dữ liệu tệp văn bản ở định dạng danh sách

Đọc tệp CSV bằng Python

Ah, định dạng CSV cũ tốt. Tệp CSV (hoặc Giá trị được phân tách bằng dấu phẩy) là loại tệp phổ biến nhất mà nhà khoa học dữ liệu sẽ làm việc với. Các tệp này sử dụng dấu “,” làm dấu phân cách để phân tách các giá trị và mỗi hàng trong tệp CSV là một bản ghi dữ liệu

Chúng rất hữu ích để truyền dữ liệu từ ứng dụng này sang ứng dụng khác và có lẽ là lý do tại sao chúng rất phổ biến trong thế giới khoa học dữ liệu

Nếu bạn xem chúng trong Notepad, bạn sẽ nhận thấy rằng các giá trị được phân tách bằng dấu phẩy

Thư viện Pandas giúp đọc các tệp CSV rất dễ dàng bằng hàm read_csv()

Nhưng CSV có thể gặp sự cố nếu các giá trị chứa dấu phẩy. Điều này có thể được khắc phục bằng cách sử dụng các dấu phân cách khác nhau để phân tách thông tin trong tệp, như '\t' hoặc ';', v.v. Các giá trị này cũng có thể được nhập bằng hàm read_csv() bằng cách chỉ định dấu phân cách trong giá trị tham số như minh họa bên dưới khi đọc tệp TSV (Giá trị được phân tách bằng tab)

Đọc tệp Excel bằng Python

Hầu hết các bạn sẽ khá quen thuộc với các tệp Excel và lý do tại sao chúng được sử dụng rộng rãi để lưu trữ dữ liệu dạng bảng. Vì vậy, tôi sẽ chuyển ngay đến mã và nhập tệp Excel bằng Python bằng Pandas

Pandas có một chức năng rất tiện dụng được gọi là read_excel() để đọc các tệp Excel

Nhưng một tệp Excel có thể chứa nhiều trang tính phải không?

Đối với điều này, chúng ta có thể sử dụng hàm Pandas’ ExcelFile() để in tên của tất cả các trang tính trong tệp

Sau khi làm điều đó, chúng ta có thể dễ dàng đọc dữ liệu từ bất kỳ trang tính nào mà chúng ta muốn bằng cách cung cấp tên của nó trong tham số sheet_name trong hàm read_excel()

Và Voila

Nhập dữ liệu từ cơ sở dữ liệu bằng Python

Khi bạn đang làm việc trên một dự án trong thế giới thực, bạn sẽ cần kết nối chương trình của mình với cơ sở dữ liệu để truy xuất dữ liệu. Không có cách nào khác (đó là lý do tại sao học SQL là một phần quan trọng trong hành trình khoa học dữ liệu của bạn)

Dữ liệu trong cơ sở dữ liệu được lưu trữ dưới dạng bảng và các hệ thống này được gọi là Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS). Tuy nhiên, việc kết nối với RDBMS và truy xuất dữ liệu từ nó có thể là một nhiệm vụ khá khó khăn. Đây là tin tốt - chúng ta có thể dễ dàng thực hiện việc này bằng cách sử dụng các mô-đun tích hợp sẵn của Python

Một trong những RDBMS phổ biến nhất là SQLite. Nó có nhiều điểm cộng

  1. Cơ sở dữ liệu nhẹ và do đó dễ sử dụng trong phần mềm nhúng
  2. Đọc và ghi nhanh hơn 35% so với Hệ thống tệp
  3. Không cần máy chủ trung gian. Việc đọc và ghi được thực hiện trực tiếp từ các tệp cơ sở dữ liệu trên đĩa
  4. Định dạng tệp cơ sở dữ liệu đa nền tảng. Điều này có nghĩa là một tệp được ghi trên một máy có thể được sao chép và sử dụng trên một máy khác có kiến ​​trúc khác

Có nhiều lý do hơn cho sự phổ biến của nó. Nhưng hiện tại, hãy kết nối với cơ sở dữ liệu SQLite và truy xuất dữ liệu của chúng tôi

Bạn sẽ cần nhập mô-đun sqlite3 để sử dụng SQLite. Sau đó, bạn cần thực hiện các bước sau để truy cập dữ liệu của mình

  1. Tạo kết nối với cơ sở dữ liệu connect(). Bạn cần chuyển tên cơ sở dữ liệu của mình để truy cập nó. Nó trả về một đối tượng Kết nối
  2. Khi bạn đã hoàn thành việc đó, bạn cần tạo một đối tượng con trỏ bằng hàm con trỏ (). Điều này sẽ cho phép bạn triển khai các lệnh SQL mà bạn có thể thao tác với dữ liệu của mình
  3. Bạn có thể thực thi các lệnh trong SQL bằng cách gọi hàm exec() trên đối tượng con trỏ. Vì chúng tôi đang lấy dữ liệu từ cơ sở dữ liệu, chúng tôi sẽ sử dụng câu lệnh SELECT và lưu trữ truy vấn trong một đối tượng
  4. Lưu trữ dữ liệu từ đối tượng vào khung dữ liệu bằng cách gọi hàm tìm nạp(), cho một hàng hoặc hàm fecthall() cho tất cả các hàng trên đối tượng

Và cứ như vậy, bạn đã lấy dữ liệu từ cơ sở dữ liệu vào khung dữ liệu Pandas

Một phương pháp hay là lưu/cam kết các giao dịch của bạn bằng cách sử dụng hàm commit() ngay cả khi bạn chỉ đọc dữ liệu

Bạn có thể đọc thêm về SQLite trong Python từ tài liệu chính thức

Làm việc với các tệp JSON trong Python

Các tệp JSON (Ký hiệu đối tượng JavaScript) nhẹ và con người có thể đọc được để lưu trữ và trao đổi dữ liệu. Máy dễ dàng phân tích cú pháp và tạo các tệp này và dựa trên ngôn ngữ lập trình JavaScript

Tệp JSON lưu trữ dữ liệu trong {} tương tự như cách từ điển lưu trữ dữ liệu trong Python. Nhưng lợi ích chính của chúng là chúng không phụ thuộc vào ngôn ngữ, nghĩa là chúng có thể được sử dụng với bất kỳ ngôn ngữ lập trình nào – có thể là Python, C hoặc thậm chí là Java

Đây là giao diện của một tệp JSON

Python cung cấp một mô-đun json để đọc các tệp JSON. Bạn có thể đọc các tệp JSON giống như các tệp văn bản đơn giản. Tuy nhiên, chức năng đọc, trong trường hợp này, được thay thế bằng json. hàm load() trả về từ điển JSON

Khi bạn đã hoàn thành việc đó, bạn có thể dễ dàng chuyển đổi nó thành khung dữ liệu Pandas bằng pandas. Hàm DataFrame()

Nhưng bạn thậm chí có thể tải trực tiếp tệp JSON vào khung dữ liệu bằng cách sử dụng pandas. read_json() chức năng như hình dưới đây

Đọc dữ liệu từ tệp Pickle trong Python

Các tệp Pickle được sử dụng để lưu trữ dạng tuần tự của các đối tượng Python. Điều này có nghĩa là các đối tượng như list, set, tuple, dict, v.v. được chuyển đổi thành một dòng ký tự trước khi được lưu trữ trên đĩa. Điều này cho phép bạn tiếp tục làm việc với các đối tượng sau này. Chúng đặc biệt hữu ích khi bạn đã đào tạo mô hình học máy của mình và muốn lưu chúng để đưa ra dự đoán sau này

Vì vậy, nếu bạn đã đánh số thứ tự các tệp trước khi lưu chúng, bạn cần hủy tuần tự hóa chúng trước khi sử dụng chúng trong các chương trình Python của mình. Điều này được thực hiện bằng cách sử dụng dưa chua. hàm load() trong mô-đun dưa chua. Nhưng khi mở file pickle bằng hàm open() của Python, bạn cần cung cấp tham số ‘rb’ để đọc file nhị phân

Quét web bằng Python

Web Scraping đề cập đến việc trích xuất một lượng lớn dữ liệu từ web. Điều này rất quan trọng đối với một nhà khoa học dữ liệu, người phải phân tích một lượng lớn dữ liệu

Python cung cấp một mô-đun rất tiện dụng có tên là các yêu cầu để truy xuất dữ liệu từ bất kỳ trang web nào. các yêu cầu. hàm get() lấy một URL làm tham số của nó và trả về phản hồi HTML làm đầu ra của nó. Cách nó hoạt động được tóm tắt trong các bước sau

  1. Nó đóng gói yêu cầu Nhận để lấy dữ liệu từ trang web
  2. Gửi yêu cầu đến máy chủ
  3. Nhận phản hồi HTML và lưu trữ trong một đối tượng phản hồi

Ví dụ này, tôi muốn cho bạn thấy một chút về thành phố của tôi – Delhi. Vì vậy, tôi sẽ lấy dữ liệu từ trang Wikipedia về Delhi

Nhưng như bạn có thể thấy, dữ liệu không dễ đọc lắm. Cấu trúc dạng cây của nội dung HTML được truy xuất theo yêu cầu của chúng tôi không dễ hiểu lắm. Để cải thiện khả năng đọc này, Python có một thư viện tuyệt vời khác có tên là BeautifulSoup

BeautifulSoup là một thư viện Python để phân tích cấu trúc dạng cây của HTML và trích xuất dữ liệu từ tài liệu HTML

Tìm hiểu thêm về BeautifulSoup trong này tại đây

Phải rồi, hãy xem điều kỳ diệu của BeautifulSoup

Để làm cho nó hoạt động, chúng ta cần chuyển phản hồi văn bản từ đối tượng yêu cầu sang BeautifulSoup() để tạo đối tượng của chính nó – trong trường hợp này là “súp”. Gọi prettify() trên đối tượng BeautifulSoup phân tích cấu trúc dạng cây của tài liệu HTML

Bạn phải nhận thấy sự khác biệt trong đầu ra. Chúng tôi có một đầu ra có cấu trúc hơn trong trường hợp này

Bây giờ, chúng ta có thể trích xuất tiêu đề của trang web bằng cách gọi hàm title() của đối tượng soup của chúng ta

Trang web có rất nhiều hình ảnh về các di tích nổi tiếng ở Delhi và những thứ khác liên quan đến Delhi. Hãy thử và lưu trữ chúng trong một thư mục cục bộ

Chúng tôi sẽ cần thư viện Python urllib để lấy URL của hình ảnh mà chúng tôi muốn lưu trữ. Nó có một urllib. hàm request() được sử dụng để mở và đọc URL. Gọi hàm urlretrieve() trên đối tượng này cho phép chúng tôi tải xuống các đối tượng được biểu thị bằng URL tới một tệp cục bộ

Các hình ảnh được lưu trữ trong thẻ “img” trong HTML. Chúng có thể được tìm thấy bằng cách gọi find_all() trên đối tượng soup. Sau này, chúng ta có thể lặp lại hình ảnh và lấy nguồn của nó bằng cách gọi hàm get() trên đối tượng hình ảnh. Phần còn lại được xử lý bởi chức năng tải xuống của chúng tôi

Xuất sắc. Bây giờ là lúc để đọc những hình ảnh đó. Chúng tôi sẽ đề cập đến điều đó trong phần tiếp theo

Đọc tệp hình ảnh bằng PIL

Nhưng trước khi bắt đầu làm việc với những vấn đề này, bạn cần biết cách mở hình ảnh của mình bằng Python. Hãy xem cách chúng tôi có thể làm điều đó bằng cách truy xuất hình ảnh từ trang web mà chúng tôi đã lưu trữ trong thư mục cục bộ của mình

Bạn sẽ cần Python PIL (Thư viện hình ảnh Python) cho công việc này

Chỉ cần gọi hàm open() trong mô-đun Hình ảnh của PIL và chuyển đường dẫn đến hình ảnh của bạn

thì đấy. Chúng tôi có hình ảnh của chúng tôi để làm việc với. Và không phải Delhi của tôi rất đẹp sao?

Đọc nhiều tệp bằng Glob

Và bây giờ, nếu bạn muốn đọc nhiều tệp cùng một lúc thì sao?

Mô-đun Python Glob cho phép bạn duyệt qua nhiều tệp ở cùng một vị trí. sử dụng toàn cầu. glob(), chúng ta có thể nhập tất cả các tệp từ thư mục cục bộ khớp với một mẫu đặc biệt

Các mẫu tên tệp này có thể được tạo bằng cách sử dụng các ký tự đại diện khác nhau như  “*” (để khớp nhiều ký tự), “?” . Hãy xem toàn cầu hoạt động bên dưới

Khi nhập nhiều. py từ cùng thư mục với tập lệnh Python của bạn, chúng ta có thể sử dụng ký tự đại diện “*”

Khi chỉ nhập một tệp Python dài 5 ký tự, chúng ta có thể sử dụng dấu “?”

Khi nhập tệp hình ảnh có chứa số trong tên tệp, chúng ta có thể sử dụng ký tự đại diện “[0-9]”

Trước đó, chúng tôi đã nhập một số hình ảnh từ trang Wikipedia về Delhi và lưu chúng vào một thư mục cục bộ. Tôi sẽ truy xuất những hình ảnh này bằng mô-đun toàn cầu và sau đó hiển thị chúng bằng thư viện PIL

Trong bài viết này, tôi đã đề cập đến cách đọc dữ liệu từ các định dạng tệp phổ biến nhất mà một nhà khoa học dữ liệu có thể gặp phải hàng ngày. Tuy nhiên, danh sách này không đầy đủ và tôi khuyến khích bạn khám phá thêm các định dạng tệp khác. Nếu bạn gặp bất kỳ rắc rối nào, vui lòng hỏi trong phần bình luận bên dưới

Nếu bạn đang muốn bắt đầu hành trình của mình trong khoa học dữ liệu, tôi khuyên bạn nên xem qua một số khóa học được tuyển chọn tuyệt vời của chúng tôi về Python và Machine Learning

Làm cách nào để kiểm tra loại tệp trong Python?

Chúng ta có thể sử dụng hàm splitext() của mô-đun Python os để lấy phần mở rộng của tệp . Hàm này chia đường dẫn tệp thành một bộ có hai giá trị - gốc và phần mở rộng.

Có bao nhiêu loại tập tin?

hai loại tệp . Có Tệp chương trình và Tệp dữ liệu. Về cơ bản, các tệp chương trình có thể được mô tả là các tệp chứa các hướng dẫn phần mềm. Các tệp chương trình sau đó được tạo bởi hai tệp được gọi là tệp chương trình nguồn và tệp thực thi.

Tệp txt trong Python là gì?

Tệp văn bản là tệp chứa văn bản đơn giản . Python cung cấp các hàm sẵn có để đọc, tạo và ghi tệp văn bản.

Các hoạt động tệp khác nhau trong Python là gì?

Người ta có thể đặt các chế độ chức năng của tệp như 'r' cho chế độ đọc, 'w' cho chế độ ghi, 'x' để trả về lỗi nếu tệp đã tồn tại, 't' cho chế độ văn bản và 'b . Các thao tác tệp Python được sử dụng phổ biến nhất là open(), close(), read(), writelines(), remove(), flush(), detach(), tell(), next . , etc.