Python thêm danh sách vào tệp văn bản

Xin chào những người học Python, hôm nay trong hướng dẫn này, tôi sẽ chỉ cho bạn cách thêm các mục vào danh sách từ một tệp văn bản trong python. Hoặc bạn có thể nói, với hướng dẫn này, bạn sẽ học cách thêm các phần tử vào danh sách từ tệp văn bản theo từng dòng

Vì vậy, hướng dẫn này sẽ bao gồm

  • Đọc một tệp văn bản trong Python
  • Sau đó nối từng dòng từ tệp văn bản vào danh sách của bạn bằng vòng lặp for

Thêm phần tử vào danh sách từ tệp văn bản mỗi dòng dưới dạng phần tử mới trong Python

Hãy bắt đầu với tệp văn bản mẫu của chúng tôi

tên tập tin. my_text_file. txt

This
is
a text
file
And we
are going to
add
these
lines
to a list
in Python

Bây giờ chúng ta sắp thêm từng dòng một vào danh sách Python từ tệp văn bản này

Bước đầu tiên của chúng tôi sẽ là đọc tất cả các dòng của tệp văn bản. Điều đó có thể được thực hiện với đoạn mã sau

my_file = open['my_text_file.txt']
all_the_lines = my_file.readlines[]

Nhớ. Trong trường hợp này, tệp văn bản và tệp chương trình python của tôi, tôi. mã hóa điện tử. py cả hai đều nằm trong cùng một thư mục. Nếu tệp văn bản của bạn nằm trong một số thư mục hoặc thư mục khác thì bạn phải đề cập đến vị trí hoặc đường dẫn của tệp văn bản của bạn tại đây. my_file = open[‘path_of_your_file’]

Cho đến bây giờ chúng tôi đã đọc các dòng từ tệp văn bản của chúng tôi. Bây giờ, phần tiếp theo là nối từng dòng một vào danh sách của chúng ta

Vậy danh sách ở đâu?

my_file = open['my_text_file.txt']
all_the_lines = my_file.readlines[]
items = []

các mục là biến danh sách của chúng tôi bây giờ. Chúng tôi sẽ nối từng dòng từ tệp văn bản trong danh sách này bằng cách sử dụng vòng lặp for

Chương trình Python cuối cùng để thêm từng dòng từ tệp văn bản vào danh sách Python của chúng tôi

my_file = open['my_text_file.txt']
all_the_lines = my_file.readlines[]
items = []
for i in all_the_lines:
    items.append[i]
print[items]

đầu ra

$ python codespeedy.py
['This\n', 'is\n', 'a text\n', 'file\n', 'And we\n', 'are going to\n', 'add\n', 'these\n', 'lines\n', 'to a list\n', 'in Python']

Bây giờ bạn có thể thấy chúng tôi đã nhập tất cả các dòng từ tệp văn bản vào danh sách Python của mình

Nhưng khoan đã. Tại sao \n ở cuối mỗi phần tử trong danh sách Python?

Vì trong file text có dòng mới. Và Python đọc đúng tệp văn bản

Nhưng bạn có thể hỏi làm cách nào để đọc ký tự cuối cùng \n của các mục trong danh sách?

Vâng, tôi cũng có một giải pháp cho nó. Chỉ cần làm theo hướng dẫn này là tốt. Cách xóa \n khỏi các phần tử danh sách trong Python – dòng mới ký tự cuối cùng

Giải pháp cho điều này là một chút khó khăn ở đây. hãy bắt đầu với cách tiếp cận cơ bản và sau đó chúng ta sẽ thảo luận về nhược điểm trong đó và xem cách cải thiện nó,

cách tiếp cận cơ bản

  • Mở tệp ở chế độ nối thêm ['a']. Ghi con trỏ trỏ đến cuối tệp
  • Nối '\ n' vào cuối tệp bằng hàm write[]
  • Nối dòng đã cho vào tệp bằng hàm write[]
  • Đóng tệp

Chà, cách tiếp cận này hoạt động tốt nếu tệp của chúng tôi đã tồn tại và đã có một số dữ liệu trong đó. Nhưng nếu tệp không tồn tại hoặc tệp trống thì cách tiếp cận này sẽ thất bại vì nội dung của tệp sẽ như thế này,

……………………

Dòng mới được thêm vào

Đầu tiên nó viết một dòng trống và sau đó viết dòng của chúng tôi. Nhưng trong trường hợp này, chỉ cần thêm một dòng là được, chúng ta không cần viết '\n' trước đó

Vì vậy, cách tiếp cận cuối cùng của chúng ta sẽ như thế này,

  • Mở tệp ở chế độ chắp thêm và đọc ['a+']. Cả đọc và ghi con trỏ trỏ đến cuối tệp
  • Di chuyển con trỏ đọc đến đầu tệp
  • Đọc một số văn bản từ tệp và kiểm tra xem tệp có trống hay không
  • Nếu tệp không trống, hãy thêm '\n' vào cuối tệp bằng hàm write[]
  • Nối một dòng đã cho vào tệp bằng hàm write[]
  • Đóng tệp

Giải pháp này sẽ hoạt động tốt trong cả hai trường hợp. Hãy sử dụng giải pháp này để thêm một dòng mới vào cuối tệp

Làm cách nào để ghi toàn bộ danh sách các phần tử vào một tệp? . txt'.

1. Sử dụng phương pháp ghi.
______5 Danh sách được lặp lại và trong mỗi lần lặp lại, phương thức ghi sẽ ghi một dòng vào một tệp cùng với ký tự xuống dòng.

2. Sử dụng phương thức nối chuỗi.
______6  Khi sử dụng phương thức nối, toàn bộ danh sách có thể được nối bằng dấu phân cách và tạo thành một chuỗi. Bây giờ, sử dụng phương thức ghi, chuỗi có thể được ghi vào tệp. Trong trường hợp này, chỉ cần một phương thức ghi cho toàn bộ danh sách.

3. Sử dụng phép nối chuỗi cùng với cú pháp mở.
#!/usr/bin/python

l1=['hi','hello','welcome']

with open['f1.txt','w'] as f:
  f.write['\n'.join[l1]]
  Cú pháp with open sẽ tự động đóng tệp ở cuối khối, do đó không cần gọi rõ ràng phương thức close. Thay vì sử dụng một biến để chứa chuỗi đã nối, nó được cấp trực tiếp cho phương thức ghi.

4. Sử dụng phương pháp writelines.
______8 Python cung cấp một phương thức, writelines, rất hữu ích để ghi danh sách vào một tệp. phương thức ghi lấy một chuỗi làm đối số, writelines lấy một danh sách. phương thức writelines sẽ ghi tất cả các phần tử của danh sách vào một tệp. Vì nó ghi nguyên trạng vào tệp, nên trước khi gọi phương thức writelines, các phần tử danh sách phải được nối thêm các ký tự xuống dòng, để các phần tử danh sách sẽ xuất hiện trong các dòng riêng lẻ. Điều này đạt được bằng cách sử dụng chức năng bản đồ sẽ thêm một dòng mới vào mọi thành phần danh sách.

Chủ Đề