Khi nào chia nhỏ tệp Python?

Khi viết tập lệnh Python cho BinNavi, bạn có thể muốn chia tập lệnh lớn thành nhiều tệp Python. Theo mặc định, điều này gây ra sự cố vì đường dẫn nhập không được thiết lập theo cách bạn mong đợi

Lấy ví dụ sau nhập hàm show_stats từ thư viện tệp. py vào tệp chính. py

thư viện. py

Khi nào chia nhỏ tệp Python?
chủ yếu. py
Khi nào chia nhỏ tệp Python?
Điều này không hoạt động vì bạn phải thiết lập đường dẫn nhập

Để làm điều này, thay đổi chính. py đến

Khi nào chia nhỏ tệp Python?

Python là một ngôn ngữ lập trình mạnh mẽ cho phép bạn dễ dàng làm việc với các tệp và dữ liệu. Thường thì bạn có thể cần tách một tệp bằng Python, dựa trên dấu phân cách, kích thước, dòng hoặc cột. Trong bài viết này, chúng ta sẽ tìm hiểu cách chia nhỏ tệp trong Python theo nhiều cách khác nhau


Cách chia nhỏ tệp trong Python

Dưới đây là các cách khác nhau để chia tệp trong Python. Giả sử bạn có một tệp dữ liệu. txt mà bạn muốn tách trong Python

Tách tệp theo dòng

Trong trường hợp này, chúng tôi sẽ chia nội dung của dữ liệu. txt theo dòng. Ví dụ: giả sử bạn có nội dung sau trong dữ liệu. txt

First Line
Second Line

Bạn có thể dễ dàng chia một tệp trong Python theo dòng bằng hàm tích hợp sẵn splitlines(). Đây là mã để làm điều này

f = open("data.txt", "r")
content = f.read()

content_list = content.splitlines()
f.close()
print(content_list)

Đây là kết quả bạn sẽ thấy khi chạy đoạn mã trên. Nó sẽ là một danh sách, trong đó mỗi phần tử là một dòng trong dữ liệu tệp của bạn. txt

['First Line', 'Second Line']

Hãy để chúng tôi nhìn vào đoạn mã trên một cách chi tiết. Đầu tiên, chúng tôi mở tệp dữ liệu. txt bằng hàm open() và lưu trữ trong đối tượng python bằng hàm read(). Chúng tôi gọi hàm splitlines() trên hàm này, hàm này trả về một danh sách, trong đó mỗi dòng trong tệp của bạn là một mục danh sách. Sau đó, chúng tôi đóng tệp bằng hàm close() và cuối cùng chúng tôi in nội dung danh sách của mình bằng hàm print()


Tách tệp bằng dấu phân cách

Trong trường hợp này chúng ta sẽ chia file dựa trên dấu phân cách hay còn gọi là dấu phân cách. Thông thường, chúng tôi nhận được các tệp văn bản có dữ liệu được phân tách bằng tab và muốn chuyển đổi nó thành tệp CSV hoặc chia nhỏ nó. Với mục đích này, chúng ta sẽ sử dụng hàm split(), cho phép bạn tách các chuỗi bằng dấu tách. Giả sử bạn có dữ liệu sau. txt chứa thông tin nhân viên

Lana Anderson 585-3094-88 Electrician
Elian Johnston 851-5845-87 Interior Designer
Henry Johnston 877-6561-52 Astronomer

Đây là một mã đơn giản để phân chia tệp trên dựa trên tab/dấu cách

with open("data.txt",'r') as data_file:
    for line in data_file:
        data = line.split()
        print(data)

Đây là kết quả bạn sẽ thấy khi chạy đoạn mã trên

['Lana', 'Anderson', '485-3094-88', 'Electrician']
['Elian', 'Johnston', '751-5845-87', 'Interior', 'Designer']
['Henry', 'Johnston', '777-6561-52', 'Astronomer']

Hãy để chúng tôi nhìn vào đoạn mã trên một cách chi tiết. Đầu tiên, chúng ta mở file bằng hàm open(). Sau đó, chúng tôi lặp qua các dòng của tệp bằng vòng lặp for. Trong mỗi lần lặp lại, chúng tôi gọi hàm split() trên dòng, về cơ bản sẽ phân tách chuỗi có trong dòng bằng dấu phân cách 'dấu cách'. Cuối cùng, chúng tôi in nó bằng hàm print()

Giả sử bạn đã có các chuỗi được phân tách bằng dấu phẩy trên mỗi dòng và muốn hàm split() tách từng dòng bằng dấu phân cách

Janet,100,50,69
Thomas,99,76,100
Kate,102,78,65

Đây là một đoạn mã đơn giản để sử dụng hàm split() để tách một tệp như vậy

with open("data.txt",'r') as file:
    for line in file:
        data = line.strip().split(',')
        print(data)

Đây là đầu ra bạn sẽ thấy

________số 8_______

Trong đoạn mã trên, chúng tôi mở tệp bằng hàm open() và chạy vòng lặp for qua các dòng của nó. Trong mỗi lần lặp, chúng ta gọi hàm split() và chỉ định dấu phẩy (,) làm dấu phân cách. Thao tác này sẽ phân tách các chuỗi của từng dòng bằng dấu phân cách dấu phẩy. Cuối cùng, chúng ta gọi hàm print() để in dữ liệu của nó


Tách tệp theo kích thước

Nếu bạn muốn chia tệp theo khối hoặc kích thước thì bạn cần sử dụng hàm read() để đọc lượng dữ liệu tệp cố định và sau đó làm việc với nó. Đây là một ví dụ để làm như vậy

test_file = 'data.txt'


def chunks(file_name, size=10000):
    with open(file_name) as f:
        while content := f.read(size):
            yield content


if __name__ == '__main__':
    split_files = chunks(test_file)
    for chunk in split_files:
        print(len(chunk))

Trong đoạn mã trên, chúng tôi xác định hàm chunks() mở tệp và đọc lượng dữ liệu cụ thể từ tệp đó và tiếp tục trả về dữ liệu miễn là không còn dữ liệu nào được đọc. Chúng tôi gọi chức năng này và lưu trữ các khối tệp trong danh sách split_lines. Cuối cùng chúng tôi lặp qua danh sách split_lines và in từng đoạn

Thành thật mà nói, nếu bạn đang sử dụng Linux, bạn chỉ nên sử dụng lệnh split để chia nhỏ tệp, dựa trên kích thước. Đây là lệnh để dễ dàng thực hiện tác vụ trên chỉ trong 1 dòng

f = open("data.txt", "r")
content = f.read()

content_list = content.splitlines()
f.close()
print(content_list)
0

Trong bài viết trên, chúng ta đã học cách chia nhỏ tệp trong Python theo nhiều cách khác nhau – theo dòng, dấu phân cách và kích thước. Bạn có thể sử dụng bất kỳ mã nào ở trên theo yêu cầu của bạn

Khi nào tôi có thể sử dụng split trong Python?

Bất cứ khi nào cần ngắt các chuỗi lớn hơn hoặc một dòng thành nhiều chuỗi nhỏ , bạn cần sử dụng hàm split() trong Python. Hàm split() vẫn hoạt động nếu dấu tách không được chỉ định bằng cách xem xét các khoảng trắng, là dấu tách để phân tách chuỗi đã cho hoặc dòng đã cho.

Tầm quan trọng của hàm split() là gì?

Hàm split trả về danh sách các chuỗi sau khi chia chuỗi dựa trên dấu tách đã cho. Sau đây là những ưu điểm của việc sử dụng chức năng phân tách trong python. Tại một số điểm, chúng tôi có thể phải chia một chuỗi lớn thành các đoạn hoặc chuỗi nhỏ hơn. Nó ngược lại với nối, cộng hai chuỗi lại với nhau

Tôi nên nhập gì để phân tách bằng Python?

Một chuỗi có nhiều dấu phân cách có thể được phân tách bằng cách sử dụng lại. chức năng tách (). Trong ví dụ trên, chúng tôi nhập mô-đun tích hợp sẵn re để nhập các thư viện và chức năng của Biểu thức chính quy.

Tách tệp trong Python là gì?

Phương thức split() trong Python trả về danh sách các từ trong chuỗi/dòng, được phân tách bằng chuỗi phân cách. Phương thức này sẽ trả về một hoặc nhiều chuỗi mới