Tab trong Python là gì?

Tệp được phân định bằng tab là định dạng văn bản nổi tiếng và được sử dụng rộng rãi để trao đổi dữ liệu. Bằng cách sử dụng cấu trúc tương tự như cấu trúc của bảng tính, nó cũng cho phép người dùng trình bày thông tin theo cách dễ hiểu và chia sẻ giữa các ứng dụng - bao gồm các hệ thống quản lý cơ sở dữ liệu quan hệ

Tiêu chuẩn IANA cho các giá trị được phân tách bằng tab yêu cầu dòng đầu tiên của tệp chứa tên trường. Ngoài ra, các dòng khác [đại diện cho các bản ghi riêng biệt] phải có cùng số cột

Các định dạng khác, chẳng hạn như các giá trị được phân tách bằng dấu phẩy, thường đặt ra thách thức là phải thoát khỏi dấu phẩy thường xuất hiện trong văn bản [trái ngược với các tab]

Mở tệp bằng Python

Trước khi đi sâu vào xử lý các giá trị được phân tách bằng dấu tab, chúng ta sẽ xem lại cách đọc và ghi tệp bằng Python. Ví dụ sau sử dụng chức năng tích hợp sẵn

1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
7 để mở tệp có tên người chơi. txt nằm trong thư mục hiện hành.

1    with open['players.txt'] as players_data:
2    	players_data.read[]

con trăn

Hàm

1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
7 chấp nhận tham số tùy chọn cho biết cách sử dụng tệp. Nếu không có, chế độ chỉ đọc được giả định. Các lựa chọn thay thế khác bao gồm, nhưng không giới hạn ở,
1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
1
[mở để viết ở chế độ cắt ngắn] và
1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
2
[open for writing in append mode].

Sau khi nhấn Enter hai lần để thực thi bộ công cụ trên, chúng ta sẽ thấy các tab [\t] giữa các trường và dấu ngắt dòng mới [\n] dưới dạng dấu phân cách bản ghi trong Hình. 1

Mặc dù chúng tôi sẽ quan tâm chủ yếu đến việc trích xuất dữ liệu từ các tệp, nhưng chúng tôi cũng có thể ghi vào chúng. Một lần nữa, hãy lưu ý việc sử dụng \n ở đầu để biểu thị một bản ghi mới và \t để phân tách các trường

1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]

con trăn

Mặc dù chức năng

1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
3 hỗ trợ khả năng đọc, nhưng có nhiều phương pháp hiệu quả hơn để xử lý cả đọc và viết - tất cả đều có sẵn trong cùng một mô-đun ở . Điều này đặc biệt quan trọng nếu chúng ta đang xử lý các tệp lớn.

Giới thiệu Mô-đun CSV

Mặc dù được đặt tên theo các giá trị được phân tách bằng dấu phẩy, nhưng mô-đun CSV có thể quản lý các tệp được phân tích cú pháp bất kể dấu phân cách trường - có thể là tab, thanh dọc hoặc bất kỳ thứ gì khác. Ngoài ra, mô-đun này cung cấp hai lớp để đọc và ghi dữ liệu vào từ điển Python [tương ứng là DictReader và DictWriter]. Trong hướng dẫn này, chúng tôi sẽ chỉ tập trung vào phần trước

Để minh họa, chúng tôi sẽ sử dụng danh sách các trận NBA từ tháng 11 năm 2018 mà khách thắng trận, trong đó có danh sách các trận NBA từ tháng 11 năm 2018 mà khách thắng trận

Trước hết, chúng tôi sẽ nhập mô-đun CSV

1    import csv

con trăn

Tiếp theo, chúng tôi sẽ mở tệp ở chế độ chỉ đọc, khởi tạo đối tượng trình đọc CSV và sử dụng nó để đọc từng hàng một

1    with open['nba_games_november2018_visitor_wins.txt', newline = ''] as games:                                                                                          
2    	game_reader = csv.reader[games, delimiter='\t']
3    	for game in game_reader:
4    		print[game]

con trăn

Mặc dù điều đó không thực sự cần thiết trong trường hợp của chúng tôi, nhưng chúng tôi sẽ chuyển

1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
4 làm đối số cho
1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
7
function as per the . If our file contains newlines inside quoted fields, this ensures that they will be processed correctly.

Quả sung. 2 cho thấy rằng mỗi hàng đã được đọc vào một danh sách sau khi bộ trên được thực thi

Mặc dù điều này chắc chắn trông tốt hơn nhiều so với phiên bản trước của chúng tôi, nơi các tab và dòng mới được trộn lẫn với nội dung thực tế, nhưng vẫn còn chỗ để cải thiện

Lớp DictReader

Một đối tượng CSV DictReader về cơ bản hoạt động như một trình đọc thông thường nhưng ánh xạ từng hàng thành một as của Python 3. 6. Trong các phiên bản trước, mỗi hàng được ánh xạ tới một từ điển thông thường. Trong mọi trường hợp, điều này cho phép chúng ta thao tác với từ điển Python bằng các phương pháp và công cụ mà chúng ta đã trình bày trong hai hướng dẫn trước [Thao tác Danh sách và Từ điển trong Python, Nhập dữ liệu từ Tệp Microsoft Excel bằng Python]

Để bắt đầu, chúng tôi sẽ tạo một danh sách trống nơi chúng tôi sẽ lưu trữ từng trò chơi dưới dạng một từ điển riêng biệt

________số 8

con trăn

Cuối cùng, chúng ta sẽ lặp lại mã giống như trên chỉ với một thay đổi nhỏ. Thay vì in từng hàng ta sẽ thêm vào games_list. Nếu bạn đang sử dụng Python 3. 5 trở lên, bạn có thể bỏ qua

1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
6 và sử dụng
1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
7
thay thế. Trong Trăn 3. 6 và mới hơn, chức năng này được sử dụng để biến từ điển có thứ tự thành từ điển thông thường để dễ đọc hơn và thao tác dễ dàng hơn.

1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
1

con trăn

Chúng tôi có thể tiến thêm một bước và sử dụng khả năng hiểu danh sách để chỉ trả lại những trò chơi mà điểm của khách truy cập lớn hơn 130. Câu lệnh sau đây tạo một danh sách mới có tên visitor_big_score_games và điền vào đó từng trò chơi bên trong games_list nếu điều kiện là đúng

1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
2

con trăn

Bây giờ chúng ta có một danh sách các từ điển, chúng ta có thể viết nó vào một bảng tính như được giải thích trong Nhập dữ liệu từ các tệp Microsoft Excel bằng Python hoặc thao tác theo cách khác. Một tùy chọn khác bao gồm viết danh sách được chuyển đổi thành chuỗi thành một tệp văn bản thuần túy có tên visitor_big_score_games. json để phân phối ở định dạng JSON

1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
3

con trăn

Hàm

1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
8 yêu cầu một chuỗi làm đối số. Đó là lý do tại sao chúng tôi phải chuyển đổi toàn bộ danh sách thành một chuỗi trước khi thực hiện thao tác ghi.

Nếu bạn chỉ muốn xem danh sách chứ không muốn biến danh sách thành bảng tính hoặc tệp JSON, bạn có thể sử dụng

1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
9 để hiển thị . 3.

1    with open['players.txt', 'a'] as players_data:
2    	players_data.write['\n{}\t{}\t{}\t{}\t{}\t{}\t{}'.format['Trey', 'Burke', '23', '1.85', '2013', '79.4', '23.2']]
6

con trăn

Như bạn có thể thấy, khả năng là vô tận và giới hạn duy nhất là trí tưởng tượng của chúng ta

Tóm lược

Trong hướng dẫn này, chúng ta đã học cách nhập và thao tác dữ liệu từ các tệp được phân định bằng tab bằng Python. Đây không chỉ là một kỹ năng có giá trị cao đối với các nhà khoa học dữ liệu mà còn đối với các nhà phát triển web và các chuyên gia CNTT khác.

Có bao nhiêu khoảng trắng là một tab trong Python?

Như Alex Martelli đã chỉ ra trong một nhận xét, trong Python 2, các tab tương đương với 8 dấu cách và điều chỉnh ví dụ bằng một tab . Trong Python 2, mã này hoạt động, không in được gì.

Tab có quan trọng trong Python không?

Tab hay Dấu cách? . Các tab chỉ nên được sử dụng để duy trì tính nhất quán với mã đã được thụt lề bằng các tab . Python không cho phép trộn các tab và dấu cách để thụt đầu dòng.

Chức năng nào được sử dụng để đặt tab trong Python?

Chuỗi Python expandtabs[] Phương thức .

Bạn có thể sử dụng tab để thụt lề trong Python không?

Số lượng khoảng trắng phải thống nhất trong một khối mã. Nên sử dụng khoảng trắng thay vì tab để thụt lề trong python . Ngoài ra, hãy sử dụng khoảng trắng hoặc tab để thụt lề; .

Chủ Đề