Python đọc các dòng mới từ tệp

Một cách khác để đạt được điều tương tự là sử dụng vòng lặp for. Trong mỗi lần lặp, bạn có thể đọc từng dòng của đối tượng

with open["data_file.txt"] as f:
    content_list = f.readlines[]

# print the list
print[content_list]

# remove new line characters
content_list = [x.strip[] for x in content_list]
print[content_list]
0 và lưu trữ nó trong
with open["data_file.txt"] as f:
    content_list = f.readlines[]

# print the list
print[content_list]

# remove new line characters
content_list = [x.strip[] for x in content_list]
print[content_list]
1 như trong ví dụ trên

Một dòng mới được sử dụng để đánh dấu sự kết thúc của một dòng và bắt đầu một dòng mới, và trong bài viết này, chúng ta sẽ xem xét cách đọc một tệp trong Python mà không có các dấu ngắt dòng mới này.  

Để bắt đầu, chúng ta sẽ tạo một tệp

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
5 đơn giản. Sau mỗi dòng văn bản, phím enter/return trên bàn phím được nhấn – tạo một dòng mới trong chính tệp đó. Điều này được hiển thị, chỉ nhằm mục đích minh họa, rõ ràng với các từ [trả lại] bên dưới mà chúng tôi đang lưu trong một tệp có tên
file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
6.  

newline.txt:Hello[return]
my[return]
name[return]
is[return]
Rikesh.[return]

Lý lịch. Mở và đọc một tệp

Giờ chúng ta đã có tệp

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
5 cơ bản, hãy bắt đầu bằng cách xem điều gì sẽ xảy ra khi chúng ta mở và đọc tệp. Khi chúng tôi mở một tệp bằng Python, chúng tôi có thể đọc nó bằng cách chuyển tham số
file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
8 trong câu lệnh mở của chúng tôi. Phương pháp đơn giản nhất để mở và đọc tệp như sau.  

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'

Sử dụng phương pháp này, chúng ta có thể thấy rằng dòng mới đang được Python đọc và được biểu thị bằng ký tự

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
9.
with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


0 này là ký tự đặc biệt Python cho một dòng mới.    

Một cách mở tệp trong Python gọn gàng hơn nhiều là sử dụng câu lệnh

with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


1 vì điều này sẽ tự động đóng tệp sau khi hoàn tất. Chúng tôi sẽ tiếp tục đọc tệp bằng cách sử dụng tham số
with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


2 và sẽ chạy một câu lệnh 
with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


3 để dọn dẹp đầu ra của chúng tôi.  

with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


đầu ra

with open["data_file.txt"] as f:
    content_list = f.readlines[]

# print the list
print[content_list]

# remove new line characters
content_list = [x.strip[] for x in content_list]
print[content_list]
4

Mặc dù nó có vẻ khác so với ví dụ trước, bằng cách sử dụng câu lệnh in của chúng tôi, chúng tôi vừa yêu cầu Python triển khai mã dòng mới. Thực tế, đầu ra của chúng tôi trông như thế này.  

with open["data_file.txt"] as f:
    content_list = f.readlines[]

# print the list
print[content_list]

# remove new line characters
content_list = [x.strip[] for x in content_list]
print[content_list]
5

Phương pháp 1. Tách bằng splitlines[] và split[‘\n’]

with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


4 là một phương thức Python tách một chuỗi thành một danh sách, trong đó mỗi dòng là một mục danh sách. Theo mặc định, phương pháp này chia dòng tại ngắt dòng mới.  

with open["data_file.txt"] as f:
    content_list = f.readlines[]

# print the list
print[content_list]

# remove new line characters
content_list = [x.strip[] for x in content_list]
print[content_list]
7

Phương thức

with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


5 Python thực hiện tương tự một cách hiệu quả, nhưng chúng ta có thể chỉ định dấu phân cách, i. e. , tại thời điểm đó chúng tôi mong muốn việc chia tách diễn ra. Trong ví dụ của chúng tôi, nó sẽ ở ký tự
with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


0, mà như chúng ta đã thấy là biểu diễn Python của một dòng mới

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
0

Trong khi cả hai phương pháp này loại bỏ các dòng mới, theo mặc định, mỗi dòng văn bản ban đầu của chúng tôi đã được trả về dưới dạng một mục riêng biệt trong danh sách. Điều này, rõ ràng, có chức năng hạn chế trừ khi tệp ban đầu của chúng tôi chứa các mục chuỗi riêng lẻ mà chúng tôi muốn tách biệt ngay từ đầu - ví dụ: danh sách các số. Trong ví dụ của chúng tôi, với một tệp chỉ có văn bản thuần túy, đầu ra ít hữu ích hơn

Phương pháp 2. Tước bằng dải[] và rstrip[]

Trong Python, phương thức

with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


7 được sử dụng để xóa khoảng trắng ở đầu [đầu] và cuối [dấu] của một chuỗi. Theo mặc định, điều này không chỉ bao gồm các khoảng trắng mà cả các ký tự dòng mới. Điều này sẽ được minh họa rõ hơn với một số thay đổi nhỏ đối với tệp gốc của chúng tôi.  

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
2

Mặc dù văn bản thực tế giống nhau nhưng chúng tôi đã thêm một số khoảng trắng trước và sau các mục nhập văn bản của mình. Điều cuối cùng cần lưu ý với phương pháp này là, vì nó hoạt động thông qua tệp của chúng tôi trên cơ sở từng chuỗi, chúng tôi cần lặp lại tệp của mình để đảm bảo áp dụng

with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


8 cho từng chuỗi.  

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
4

Như chúng ta có thể thấy, phương thức

with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


8 không chỉ loại bỏ dòng mới mà còn loại bỏ tất cả các khoảng trắng ở đầu và cuối. Mặc dù đây có thể là một tính năng hữu ích, nhưng điều gì sẽ xảy ra nếu chúng ta muốn giữ khoảng trắng và chỉ loại bỏ ký tự xuống dòng? .  

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
8

Trong khi phương pháp

with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


8 ảnh hưởng đến cả khoảng trắng ở cuối và ở đầu, chúng ta có thể sử dụng
with open["data_file.txt"] as f:
    content_list = f.readlines[]

# print the list
print[content_list]

# remove new line characters
content_list = [x.strip[] for x in content_list]
print[content_list]
43 để chỉ xóa các ký tự ở cuối i. e. , những cái ở cuối chuỗi. Vì ngắt dòng mới có xu hướng ở cuối chuỗi, nên phương thức này được ưu tiên hơn
with open["data_file.txt"] as f:
    content_list = f.readlines[]

# print the list
print[content_list]

# remove new line characters
content_list = [x.strip[] for x in content_list]
print[content_list]
44, phương thức này chỉ ảnh hưởng đến các ký tự ở đầu chuỗi. Một lần nữa, chúng tôi có thể chuyển tham số
with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


0 để đảm bảo chúng tôi chỉ xóa các ký tự xuống dòng.  

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
0

Phương pháp 3. cắt lát

Một cách khác để xóa dòng mới là cắt, nhưng cần lưu ý rằng cách này nên được sử dụng hết sức thận trọng vì nó ít được nhắm mục tiêu hơn các phương pháp khác của chúng tôi. Với việc cắt lát, chúng ta có thể yêu cầu Python xóa ký tự cuối cùng của mỗi chuỗi, thông qua việc cắt lát phủ định

with open["data_file.txt"] as f:
    content_list = f.readlines[]

# print the list
print[content_list]

# remove new line characters
content_list = [x.strip[] for x in content_list]
print[content_list]
46. Như với 
with open["newline.txt", "r"] as file: 
    line = file.read[]
    print[file]


8, chúng tôi phải lặp lại tệp của mình.  

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
1

Tuy nhiên, xin lưu ý rằng việc cắt lát là bừa bãi – nó sẽ không quan tâm ký tự cuối cùng là gì và chúng tôi không thể chỉ định điều này. Vì vậy, mặc dù nó hoạt động khi tệp gốc của chúng ta nhất quán và có tất cả các ngắt dòng mới ở đúng vị trí, nhưng điều gì xảy ra nếu không đúng như vậy? .  

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
2

Trong tệp này, dấu chấm và quay lại ở cuối dòng cuối cùng đã bị xóa, vì vậy ký tự cuối cùng cho tập lệnh đó là

with open["data_file.txt"] as f:
    content_list = f.readlines[]

# print the list
print[content_list]

# remove new line characters
content_list = [x.strip[] for x in content_list]
print[content_list]
48. Điều quan trọng cần lưu ý là không có khoảng trắng hoặc trả về sau ký tự này. Bây giờ, nếu chúng ta thử cắt tệp này.  

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
3

Đầu ra đã cắt [cắt nhỏ] ký tự cuối cùng của tên tôi. Do đó, chúng tôi cần đảm bảo tính toàn vẹn và định dạng của tệp gốc trước khi có thể sử dụng phương pháp này, nếu không, chúng tôi có nguy cơ mất dữ liệu

Phương pháp 4. Thay thế

Phương pháp cuối cùng chúng ta sẽ xem xét là

with open["data_file.txt"] as f:
    content_list = f.readlines[]

# print the list
print[content_list]

# remove new line characters
content_list = [x.strip[] for x in content_list]
print[content_list]
49. Như tên gợi ý, chúng ta có thể sử dụng cụm từ này để thay thế một cụm từ cụ thể trong chuỗi của mình bằng một cụm từ cụ thể khác. Như chúng ta mong đợi dấu ngắt dòng mới sẽ được sử dụng khi có một kiểu ngắt logic nào đó trong văn bản của chúng ta, một lựa chọn rõ ràng sẽ là thay thế nó bằng một khoảng trắng, điều mà chúng ta có thể thực hiện với
with open["data_file.txt"] as f:
    content_list = f.readlines[]

# print the list
print[content_list]

# remove new line characters
content_list = [x.strip[] for x in content_list]
print[content_list]
50. Phương pháp này, cũng yêu cầu chúng tôi lặp lại tệp của mình.  

file= open["newline.txt", "r"]
file.read[]
# 'Hello\nmy\nname\nis\nRikesh.\n'
4

Mặc dù điều này đã mang lại cho chúng tôi định dạng rõ ràng nhất trong tất cả các ví dụ của chúng tôi, nhưng điều này chỉ là do định dạng của tệp gốc của chúng tôi. Tuy nhiên,

with open["data_file.txt"] as f:
    content_list = f.readlines[]

# print the list
print[content_list]

# remove new line characters
content_list = [x.strip[] for x in content_list]
print[content_list]
49 có tính linh hoạt để cho phép thay thế các ký tự dòng mới bằng bất kỳ ký tự nào phù hợp nhất với tệp cụ thể của chúng tôi.  

Tóm lược

Chúng tôi đã thấy một số phương pháp khác nhau để đọc tệp mà không cần dòng mới. Mỗi cái có hiệu quả theo cách riêng của nó và thực hiện công việc loại bỏ các dòng mới của chúng tôi, vì vậy không có câu trả lời đúng. Phương pháp chính xác sẽ phụ thuộc vào tệp gốc mà chúng tôi đang làm việc, cả về nội dung [văn bản thuần túy, số nguyên] và định dạng [khoảng trắng, tính nhất quán].  

Nếu bạn cần tách riêng các mục, chia tách có thể là lựa chọn tốt nhất. Nếu bạn cần nối đầu ra, thay thế hoặc tước bỏ có thể là câu trả lời. Mở và đọc tệp trước, không có bất kỳ định dạng nào để đánh giá nội dung và cấu trúc tệp, sẽ là bước quan trọng nhất để quyết định phương pháp nào phù hợp nhất với nhu cầu của bạn

Chủ Đề