Hướng dẫn python read tab-delimited file into array - python đọc tệp được phân cách bằng tab thành mảng

Đầu tiên, bạn đang tải nó vào một từ điển, sẽ không có được danh sách các danh sách mà bạn muốn.

Thật đơn giản khi sử dụng mô -đun CSV để tạo danh sách các danh sách như thế này:

import csv
with open(path) as f:
    reader = csv.reader(f, delimiter="\t")
    d = list(reader)
print d[0][2] # 248

Điều đó sẽ cung cấp cho bạn một danh sách các danh sách các chuỗi, vì vậy nếu bạn muốn có được số, bạn sẽ phải chuyển đổi sang INT.

Điều đó nói rằng, nếu bạn có một mảng lớn (hoặc đang thực hiện bất kỳ loại tính toán số nào), bạn nên xem xét sử dụng một cái gì đó như Numpy hoặc Pandas. Nếu bạn muốn sử dụng Numpy, bạn có thể làm

import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248

Là một phần thưởng, các mảng numpy cho phép bạn thực hiện các hoạt động vectơ/ma trận nhanh. (Ngoài ra, lưu ý rằng d[0][2] cũng sẽ hoạt động với mảng numpy).

Làm cách nào để đọc một tab

Để đọc các tệp giá trị được phân tách bằng tab với Python, chúng tôi sẽ tận dụng thực tế rằng chúng tương tự như CSV. Chúng tôi sẽ sử dụng thư viện CSV của Python và bảo nó chia mọi thứ với các tab thay vì dấu phẩy. Chỉ cần đặt đối số Delimiter thành "\ t". Đó là nó!

Làm thế nào để bạn đọc các không gian tách biệt trong Python?

Đọc không gian tệp văn bản phân tách thành danh sách trong câu trả lời mã Python.

với mở ('file1.txt', 'r+') như f:.

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

import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
0 để mở tệp có tên người chơi.txt nằm trong thư mục hiện tại:
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
0
built-in function to open a file named players.txt located in the current directory:

1    with open('players.txt') as players_data:
2    	players_data.read()

Python

Hàm

import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
0 chấp nhận một 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,
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
2 (mở để viết ở chế độ cắt ngắn) và
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
3 (mở để viết ở chế độ phụ trợ).
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
0
function accepts an optional parameter that indicates how the file will be used. If not present, read-only mode is assumed. Other alternatives include, but are not limited to,
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
2
(open for writing in truncate mode) and
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
3
(open for writing in append mode).

Sau khi nhấn Enter hai lần để thực thi bộ trên, chúng ta sẽ thấy các tab (\ t) giữa các trường và ngắt dòng mới (\ n) làm dấu phân cách ghi trong Hình 1:\t) between fields, and new line breaks (\n) as record separators in Fig. 1:

Hướng dẫn python read tab-delimited file into array - python đọc tệp được phân cách bằng tab thành mảng

Mặc dù chúng tôi sẽ chủ yếu quan tâm đến việc trích xuất dữ liệu từ các tệp, chúng tôi cũng có thể viết cho họ. Một lần nữa, lưu ý rằng việc sử dụng \ n ở đầu để chỉ một bản ghi mới và các trường riêng biệt:\n at the beginning to indicate a new record and \t to separate fields:

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'))

Python

Hàm

import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
0 chấp nhận một 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,
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
2 (mở để viết ở chế độ cắt ngắn) và
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
3 (mở để viết ở chế độ phụ trợ).
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
4
function helps with readability, there are more efficient methods to handle both reading and writing - all available within the same module in the standard library. This is particularly important if we are dealing with large files.

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

Mặc dù chúng tôi sẽ chủ yếu quan tâm đến việc trích xuất dữ liệu từ các tệp, chúng tôi cũng có thể viết cho họ. Một lần nữa, lưu ý rằng việc sử dụng \ n ở đầu để chỉ một bản ghi mới và các trường riêng biệt:CSV module can manage parsed files regardless of the field delimiter - be it tabs, vertical bars, or just about anything else. Additionally, this module provides two classes to read from and write data to Python dictionaries (DictReader and DictWriter, respectively). In this guide we will focus on the former exclusively.

Mặc dù chức năng

import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
4 giúp dễ đọc, 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 trong thư viện tiêu chuẩn. Điều này đặc biệt quan trọng nếu chúng ta đang xử lý các tệp lớn.CSV module:

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

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)

Python

Hàm

import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
0 chấp nhận một 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,
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
2 (mở để viết ở chế độ cắt ngắn) và
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
3 (mở để viết ở chế độ phụ trợ).
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
5
as an argument to the
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
0
function as per the module documentation. If our file contains newlines inside quoted fields, this ensures that they will be processed correctly.

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

Hướng dẫn python read tab-delimited file into array - python đọc tệp được phân cách bằng tab thành mảng

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

Mặc dù chức năng import numpy as np d = np.loadtxt(path, delimiter="\t") print d[0,2] # 248 4 giúp dễ đọc, 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 trong thư viện tiêu chuẩn. Đ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ù nó được đặt tên theo các giá trị được phân tách bằng dấu phẩy, mô -đun CSV có thể quản lý các tệp được phân tích cú pháp bất kể phân cách trường - có thể là tab, thanh dọc hoặc bất cứ 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ẽ tập trung vào trước đây.games_list. If you are using Python 3.5 or older, you can omit

import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
7 and use
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
8
instead. In Python 3.6 and newer, this function is used to turn the ordered dictionary into a regular one for better readability and easier manipulation.

1    with open('nba_games_november2018_visitor_wins.txt', newline = '') as games:                                                                                          
2    	game_reader = csv.DictReader(games, delimiter='\t')
3    	for game in game_reader:
4    		games_list.append(dict(game))

Python

Trước hết, chúng tôi sẽ nhập mô -đun CSV:visitor_big_score_games and populates it with each game inside games_list where the condition is true:

1    visitor_big_score_games = [game for game in games_list if int(game['Visitor score']) > 130]

Python

Tiếp theo, chúng tôi sẽ mở tệp ở chế độ chỉ đọc, khởi tạo đối tượng đầu đọc CSV và sử dụng nó để đọc một hàng tại một thời điểm:visitor_big_score_games.json for distribution in JSON format:

1    with open('visitor_big_score_games.json', 'w') as games:
2    	games.write(str(visitor_big_score_games))

Python

Mặc dù nó không hoàn toàn cần thiết trong trường hợp của chúng tôi, chúng tôi sẽ vượt qua

import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
5 như một đối số cho hàm
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
0 theo tài liệu mô -đun. Nếu tệp của chúng tôi chứa các dòng mới bên trong các trường được trích dẫn, điều này đảm bảo rằng chúng sẽ được xử lý chính xác.
import numpy as np
d = np.loadtxt(path, delimiter="\t")
print d[0,2] # 248
9
function requires a string as an argument. That is why we had to convert the entire list into a string before performing the write operation.

Hình 2 cho thấy mỗi hàng được đọc vào một danh sách sau khi bộ trên được thực hiện:

1    with open('players.txt') as players_data:
2    	players_data.read()
0 to display it in a user-friendly format as shown in Fig. 3:

1    import pprint as pp
2    pp.pprint(visitor_big_score_games)

Python

Hướng dẫn python read tab-delimited file into array - python đọc tệp được phân cách bằng tab thành mảng

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 với nội dung thực tế, nhưng vẫn còn chỗ để cải thiện.

Lớp Dictreader

Để 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 từ điển riêng biệt:

Làm cách nào để đọc một tab

Để đọc các tệp giá trị được phân tách bằng tab với Python, chúng tôi sẽ tận dụng thực tế rằng chúng tương tự như CSV.Chúng tôi sẽ sử dụng thư viện CSV của Python và bảo nó chia mọi thứ với các tab thay vì dấu phẩy.Chỉ cần đặt đối số Delimiter thành "\ t".Đó là nó!set the delimiter argument to "\t" . That's it!

Làm thế nào để bạn đọc các không gian tách biệt trong Python?

Đọc không gian tệp văn bản phân tách thành danh sách trong câu trả lời mã Python..
với mở ('file1.txt', 'r+') như f:.
dòng = f.đọc().splitlines ().
print(lines).

Làm cách nào để đọc một tệp văn bản trong Python?

Để đọc một tệp văn bản trong Python, bạn làm theo các bước sau: Đầu tiên, hãy mở một tệp văn bản để đọc bằng cách sử dụng hàm Open ().Thứ hai, đọc văn bản từ tệp văn bản bằng cách sử dụng phương thức read (), readline () hoặc readlines () của đối tượng tệp.Thứ ba, đóng tệp bằng phương thức đóng tệp ().

Biểu tượng cho Tab Delimiter là gì?

'\ t' hoặc 'tab' (mặc định) |'Bar' |'Dấu phẩy' |'Semi' |'Không gian' |... ký tự Delimiter, được chỉ định là một trong các giá trị trong bảng này. (default) | 'bar' | 'comma' | 'semi' | 'space' | ... Delimiter character, specified as one of the values in this table.