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.