Python đọc tệp được phân định bằng tab

Các tệp được phân định bằng tab là các tệp văn bản được sắp xếp xung quanh dữ liệu có hàng và cột. Định dạng này được sử dụng để trao đổi dữ liệu giữa các chương trình bảng tính hoặc cơ sở dữ liệu. Tệp được phân định bằng tab chỉ sử dụng hai quy tắc chấm câu để mã hóa dữ liệu

  • Mỗi hàng được phân định bởi một ký tự xuống dòng thông thường. Đây thường là tiêu chuẩn \n. Nếu bạn đang trao đổi tệp trên các nền tảng, bạn có thể cần mở tệp để đọc bằng chế độ "rU" để xử lý dòng mới chung

  • Trong một hàng, các cột được phân cách bằng một ký tự đơn, thường là \t. Ký tự dấu câu cột được chọn là ký tự sẽ không bao giờ xuất hiện trong dữ liệu. Nó thường [nhưng không phải luôn luôn] là một ký tự không in được như \t

Trong các trường hợp lý tưởng, tệp CSV sẽ có cùng số cột trong mỗi hàng và hàng đầu tiên sẽ là tiêu đề cột. Gần như thú vị là một tệp không có tiêu đề cột, nhưng với một chuỗi các cột đã biết. Trong các trường hợp phức tạp hơn, số lượng cột trên mỗi hàng thay đổi

Khi chúng ta có một dấu chấm câu tiêu chuẩn, đơn giản, chúng ta có thể chỉ cần sử dụng hai thao tác trong các lớp stringlist để xử lý tệp. Chúng tôi sử dụng phương pháp split của một string để phân tích các hàng. Chúng tôi sử dụng phương pháp join của một list để tập hợp các hàng

Chúng tôi thực sự không cần một mô-đun riêng biệt để xử lý các tệp được phân định bằng tab. Chúng tôi đã xem xét một ví dụ liên quan trong

Đọc. Trường hợp chung nhất để đọc dữ liệu được phân định bằng tab được hiển thị trong ví dụ sau

myFile= open[ "
somefile
", "rU" ]
for aRow in myFile:
    print aRow.split['\t']
myFile.close[]

Mỗi hàng sẽ là một list giá trị cột

Viết. Trường hợp viết là nghịch đảo của trường hợp đọc. Về cơ bản, chúng tôi sử dụng

test= file[ "boats.tab", "w" ]
test.write[ "\t".join[ Boat.csvHeading ] ]
test.write[ "\n" ]
for d in db:
    test.write[ "\t".join[ map[ str, d.csvRow[] ] ] ]
    test.write[ "\n" ]
test.close[]
2 để tạo hàng được phân định bằng tab. Đây là ví dụ về thuyền buồm của chúng tôi, được thực hiện dưới dạng dữ liệu được phân định bằng tab

test= file[ "boats.tab", "w" ]
test.write[ "\t".join[ Boat.csvHeading ] ]
test.write[ "\n" ]
for d in db:
    test.write[ "\t".join[ map[ str, d.csvRow[] ] ] ]
    test.write[ "\n" ]
test.close[]

Lưu ý rằng một số thành phần của đối tượng dữ liệu của chúng tôi không phải là giá trị chuỗi. Trong trường hợp này, giá trị của sails là một bộ, cần được chuyển đổi thành một chuỗi thích hợp. Biểu thức

test= file[ "boats.tab", "w" ]
test.write[ "\t".join[ Boat.csvHeading ] ]
test.write[ "\n" ]
for d in db:
    test.write[ "\t".join[ map[ str, d.csvRow[] ] ] ]
    test.write[ "\n" ]
test.close[]
3 ] áp dụng hàm
test= file[ "boats.tab", "w" ]
test.write[ "\t".join[ Boat.csvHeading ] ]
test.write[ "\n" ]
for d in db:
    test.write[ "\t".join[ map[ str, d.csvRow[] ] ] ]
    test.write[ "\n" ]
test.close[]
4 cho từng phần tử của danh sách ban đầu, tạo danh sách mới sẽ có tất cả các giá trị chuỗi. Xem phần có tên là “Các hàm xử lý trình tự.
test= file[ "boats.tab", "w" ]
test.write[ "\t".join[ Boat.csvHeading ] ]
test.write[ "\n" ]
for d in db:
    test.write[ "\t".join[ map[ str, d.csvRow[] ] ] ]
    test.write[ "\n" ]
test.close[]
5,
test= file[ "boats.tab", "w" ]
test.write[ "\t".join[ Boat.csvHeading ] ]
test.write[ "\n" ]
for d in db:
    test.write[ "\t".join[ map[ str, d.csvRow[] ] ] ]
    test.write[ "\n" ]
test.close[]
6,
test= file[ "boats.tab", "w" ]
test.write[ "\t".join[ Boat.csvHeading ] ]
test.write[ "\n" ]
for d in db:
    test.write[ "\t".join[ map[ str, d.csvRow[] ] ] ]
    test.write[ "\n" ]
test.close[]
7 và
test= file[ "boats.tab", "w" ]
test.write[ "\t".join[ Boat.csvHeading ] ]
test.write[ "\n" ]
for d in db:
    test.write[ "\t".join[ map[ str, d.csvRow[] ] ] ]
    test.write[ "\n" ]
test.close[]
8”

Cách dễ nhất để chuyển đổi tệp giá trị được phân định bằng tab [TSV] thành tệp giá trị được phân tách bằng dấu phẩy [CSV] là sử dụng ba dòng mã sau

  1. import pandas as pd
  2. df = pd.read_csv['my_file.txt', sep='\t', header=None]
  3. df.to_csv['my_file.csv', header=None]

Tiếp theo, chúng tôi sẽ giải thích chi tiết hơn về phương pháp này và các phương pháp khác—hãy cuộn xuống Phương pháp 3 để biết phương pháp chính xác này

Xây dựng vấn đề

Đưa ra một tệp được phân định bằng tab có một ký tự tab '\t' giữa hai giá trị trong một cột nhất định

Đầu vào. 'my_file.tsv'

Nhân vật. Tệp 'my_file.tsv' với các giá trị được phân tách bằng tab '\t'

Alice	DataScience	$100000
Bob	Programmer	$90000
Carl	Manager	$122000
Dave	Freelancer	$144000

Làm cách nào để chuyển đổi các giá trị được phân định bằng tab [TSV] thành tệp giá trị được phân tách bằng dấu phẩy [CSV]?

đầu ra.

0,Alice,DataScience,$100000
1,Bob,Programmer,$90000
2,Carl,Manager,$122000
3,Dave,Freelancer,$144000
2

0,Alice,DataScience,$100000
1,Bob,Programmer,$90000
2,Carl,Manager,$122000
3,Dave,Freelancer,$144000

Chúng tôi cũng sẽ xem xét các biến thể nhỏ của vấn đề này. Đi nào

Phương pháp 1. Chuỗi thay thế một tab

Cách đơn giản nhất để chuyển đổi tệp được phân định bằng tab [TSV] thành tệp được phân tách bằng dấu phẩy [CSV] trong Python là thay thế từng ký tự dạng bảng '\t' bằng ký tự dấu phẩy

0,Alice,DataScience,$100000
1,Bob,Programmer,$90000
2,Carl,Manager,$122000
3,Dave,Freelancer,$144000
4 bằng phương pháp
0,Alice,DataScience,$100000
1,Bob,Programmer,$90000
2,Carl,Manager,$122000
3,Dave,Freelancer,$144000
5. Điều này hoạt động nếu hai giá trị được phân tách bằng chính xác một ký tự dạng bảng

Đây là một tệp đầu vào ví dụ 'my_file.tsv'

Dưới đây là ví dụ về một số mã để chuyển đổi tệp được phân định bằng tab thành tệp CSV

with open['my_file.tsv'] as f:

    # Read space-delimited file and replace all empty spaces by commas
    data = f.read[].replace['\t', ',']

    # Write the CSV data in the output file
    print[data, file=open['my_file.csv', 'w']]

Tệp đầu ra

0,Alice,DataScience,$100000
1,Bob,Programmer,$90000
2,Carl,Manager,$122000
3,Dave,Freelancer,$144000
2

Nếu bạn có bất kỳ nghi ngờ nào, vui lòng đi sâu vào các hướng dẫn liên quan của chúng tôi

  • Phương thức thay thế chuỗi Python
  • Hàm
    0,Alice,DataScience,$100000
    1,Bob,Programmer,$90000
    2,Carl,Manager,$122000
    3,Dave,Freelancer,$144000
    8 của Python
  • Python
    0,Alice,DataScience,$100000
    1,Bob,Programmer,$90000
    2,Carl,Manager,$122000
    3,Dave,Freelancer,$144000
    9 vào tệp
  • Hàm
    0,Alice,DataScience,$100000
    1,Bob,Programmer,$90000
    2,Carl,Manager,$122000
    3,Dave,Freelancer,$144000
    9 của Python
  • Trình quản lý bối cảnh Python

Phương pháp 2. Regex Thay thế các tab tùy ý

Để thay thế một '\t' hoặc nhiều tab

with open['my_file.tsv'] as f:

    # Read space-delimited file and replace all empty spaces by commas
    data = f.read[].replace['\t', ',']

    # Write the CSV data in the output file
    print[data, file=open['my_file.csv', 'w']]
2 giữa hai giá trị cột bằng dấu phẩy
0,Alice,DataScience,$100000
1,Bob,Programmer,$90000
2,Carl,Manager,$122000
3,Dave,Freelancer,$144000
4 và lấy CSV, hãy sử dụng thao tác biểu thức chính quy
with open['my_file.tsv'] as f:

    # Read space-delimited file and replace all empty spaces by commas
    data = f.read[].replace['\t', ',']

    # Write the CSV data in the output file
    print[data, file=open['my_file.csv', 'w']]
4 trên khoảng cách được phân tách bằng dấu cách
with open['my_file.tsv'] as f:

    # Read space-delimited file and replace all empty spaces by commas
    data = f.read[].replace['\t', ',']

    # Write the CSV data in the output file
    print[data, file=open['my_file.csv', 'w']]
5

Nếu bạn có bất kỳ nghi ngờ nào, vui lòng đi sâu vào các hướng dẫn liên quan của chúng tôi

  • Python Regex
    with open['my_file.tsv'] as f:
    
        # Read space-delimited file and replace all empty spaces by commas
        data = f.read[].replace['\t', ',']
    
        # Write the CSV data in the output file
        print[data, file=open['my_file.csv', 'w']]
    6
  • Python Regex
    with open['my_file.tsv'] as f:
    
        # Read space-delimited file and replace all empty spaces by commas
        data = f.read[].replace['\t', ',']
    
        # Write the CSV data in the output file
        print[data, file=open['my_file.csv', 'w']]
    7 Lớp ký tự
  • Python Regex
    with open['my_file.tsv'] as f:
    
        # Read space-delimited file and replace all empty spaces by commas
        data = f.read[].replace['\t', ',']
    
        # Write the CSV data in the output file
        print[data, file=open['my_file.csv', 'w']]
    8 Bộ định lượng
  • Siêu năng lực Regex của Python

Đây là một ví dụ về tệp đầu vào 'my_file.tsv', lưu ý các ký tự dạng bảng bổ sung có thể phân tách hai giá trị cột

Dưới đây là ví dụ về một số mã để chuyển đổi TSV sang tệp CSV

import re

with open['my_file.txt'] as infile:

    # Read space-delimited file and replace all empty spaces by commas
    data = re.sub['[ ]+', ',', infile.read[]]

    # Write the CSV data in the output file
    print[data, file=open['my_file.csv', 'w']]

Tệp đầu ra

0,Alice,DataScience,$100000
1,Bob,Programmer,$90000
2,Carl,Manager,$122000
3,Dave,Freelancer,$144000
2

Phương pháp 3. Pandas read_csv[] và to_csv[]

Để chuyển đổi tệp được phân định bằng tab thành CSV, trước tiên hãy đọc tệp đó vào Khung dữ liệu Pandas bằng cách sử dụng

import re

with open['my_file.txt'] as infile:

    # Read space-delimited file and replace all empty spaces by commas
    data = re.sub['[ ]+', ',', infile.read[]]

    # Write the CSV data in the output file
    print[data, file=open['my_file.csv', 'w']]
1, sau đó ghi Khung dữ liệu vào tệp bằng cách sử dụng
import re

with open['my_file.txt'] as infile:

    # Read space-delimited file and replace all empty spaces by commas
    data = re.sub['[ ]+', ',', infile.read[]]

    # Write the CSV data in the output file
    print[data, file=open['my_file.csv', 'w']]
2

Đây là một tệp đầu vào ví dụ 'my_file.tsv'

Dưới đây là ví dụ về một số mã để chuyển đổi tệp được phân định bằng tab thành tệp CSV

import pandas as pd

# Read space-delimited file
df = pd.read_csv['my_file.tsv', sep='\t+', header=None]

# Write DataFrame to file
df.to_csv['my_file.csv', header=None]

Tệp đầu ra

0,Alice,DataScience,$100000
1,Bob,Programmer,$90000
2,Carl,Manager,$122000
3,Dave,Freelancer,$144000
2

Bạn cũng có thể sử dụng

import re

with open['my_file.txt'] as infile:

    # Read space-delimited file and replace all empty spaces by commas
    data = re.sub['[ ]+', ',', infile.read[]]

    # Write the CSV data in the output file
    print[data, file=open['my_file.csv', 'w']]
5 đơn giản hơn nếu bạn chắc chắn rằng chỉ một ký tự dạng bảng duy nhất phân tách hai giá trị cột

Nếu bạn có bất kỳ nghi ngờ nào, vui lòng đi sâu vào các hướng dẫn liên quan của chúng tôi

  • Gấu trúc
    import re
    
    with open['my_file.txt'] as infile:
    
        # Read space-delimited file and replace all empty spaces by commas
        data = re.sub['[ ]+', ',', infile.read[]]
    
        # Write the CSV data in the output file
        print[data, file=open['my_file.csv', 'w']]
    6
  • Gấu trúc
    import re
    
    with open['my_file.txt'] as infile:
    
        # Read space-delimited file and replace all empty spaces by commas
        data = re.sub['[ ]+', ',', infile.read[]]
    
        # Write the CSV data in the output file
        print[data, file=open['my_file.csv', 'w']]
    7

Tóm lược

Chúng tôi đã kiểm tra ba cách tuyệt vời để chuyển đổi tệp CSV được phân cách bằng dấu cách thành tệp CSV được phân tách bằng dấu phẩy

Cảm ơn đã dành thời gian để đọc bài viết này, bạn của tôi. 🐍💛

Regex hài hước

Đợi đã, quên thoát khỏi một không gian. Weeeeee[taptaptap]eeeeee. [nguồn]

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Cách đọc tab

Cách tiếp cận. .
Nhập mô-đun Pandas và Numpy
Tạo DataFrame bằng phương thức DataFrame[]
Lưu DataFrame dưới dạng tệp csv bằng phương thức to_csv[] với tham số sep là “\t”
Tải tệp CSV mới được tạo bằng phương thức read_csv[] dưới dạng DataFrame
Hiển thị DataFrame mới

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

Cách rất đơn giản để đọc dữ liệu từ Tệp TSV bằng Python là sử dụng split[] . Chúng tôi có thể đọc một tệp TSV nhất định và lưu trữ dữ liệu của nó vào một danh sách.

Chủ Đề