Python readlines thêm các dòng trống

Xóa các dòng trống khỏi tệp yêu cầu hai bước. Đầu tiên, chúng ta cần lặp qua các dòng tệp. Thứ hai, kiểm tra xem dòng có trống không. Trong Python, có nhiều cách khác nhau để thực hiện vòng lặp và kiểm tra

Các tập tin. Các chương trình Python thường mở, ghi và nối vào tệp. Nhiều định nghĩa hữu ích có sẵn bằng ngôn ngữ này—bao gồm pin

Với phương pháp mở, chúng tôi truy cập các tệp. Các phương thức như readlines[] xử lý dữ liệu của chúng. Với Python, thường không cần vòng lặp để đọc toàn bộ tệp

Đọc dòng văn bản. Chúng tôi bắt đầu với các tệp văn bản. Ngay cả khi chúng tôi chỉ muốn hiển thị tất cả các dòng từ một tệp, các dòng mới phải được xử lý. Chúng tôi đọc tất cả các dòng từ một tệp có readlines[]

Mẹo Trước tiên chúng ta phải tạo một đối tượng tệp mới. Và sau đó chúng tôi lặp lại danh sách được trả về bởi readlines[]

Chuỗi thô Chương trình này sử dụng cú pháp đường dẫn cho hệ thống Windows. Chúng tôi bắt đầu chuỗi bằng "r" để tránh lỗi với dấu gạch chéo ngược

Kết thúc Tham số để in[] sửa đổi hành vi của in. Khi chúng tôi sử dụng end="" dòng mới ở cuối không được in ra bảng điều khiển

# Mở tệp trên đĩa. f = mở[r"C. \perls. txt", "r"] # In tất cả các dòng của nó. cho dòng trong f. đường đọc []. # Sửa đổi đối số kết thúc. in [dòng, kết thúc = ""] Dòng 1 Dòng 2

Đối tượng tệp, vòng lặp. Chúng tôi không cần readlines[] để truy cập tất cả các dòng trong một tệp—chúng tôi thậm chí không cần read[] hoặc readline. Chúng ta có thể lặp trực tiếp đối tượng tệp

Mẹo Ví dụ này xử lý các dòng trống, chứa một ký tự dòng mới

# Gọi open[] để truy cập tệp. f = mở[r"C. \chương trình\thông tin. txt", "r"] cho dòng trong f. # Dòng trống chứa ký tự xuống dòng. nếu dòng == "\n". in[". DÒNG Rỗng. "] tiếp tục # Tách dòng. dòng = dòng. dải [] in [dòng] Vật nuôi. 1. con chó 2. con mèo 3. Gia CầmVật Nuôi. . DÒNG Rỗng. 1. con chó 2. con mèo 3. Chim

Với. Tuyên bố này làm sạch tài nguyên. Nó làm cho nhiệm vụ giải phóng tài nguyên hệ thống trở nên đơn giản hơn. Nó được sử dụng với việc xử lý tập tin. open[] là một cuộc gọi phổ biến. Nó cải thiện khả năng đọc

Đầu tiên Chúng tôi sử dụng "với" trong chương trình đơn giản này. Chương trình mở và đọc từ một tệp

Mẹo Câu lệnh này đảm bảo tài nguyên hệ thống được dọn sạch đúng cách. Câu lệnh with tương tự như câu lệnh try-cuối cùng

tên = r"C. \perls. txt" # Mở tệp trong câu lệnh with. với open[name] là f. in [f. readline[], end=""] # Lặp lại. với open[name] là f. in [f. readline[], end=""] Dòng đầu tiên Dòng đầu tiên

dưa chua, danh sách. Thường thì chúng ta cần lưu trữ các đối tượng. Với dưa chua, chúng tôi viết các bộ sưu tập như danh sách vào một tệp dữ liệu. Nó hỗ trợ nhiều đối tượng. Câu lệnh with cải thiện khả năng dọn dẹp tài nguyên

Tuy nhiên Trong ví dụ này, chúng tôi tạo một danh sách. Chúng tôi chuyển danh sách này cho dưa chua. bãi rác[]

Kết xuất Cái này ghi nội dung danh sách ở dạng nhị phân vào tệp f. dưa chua. Phần mở rộng [dưa chua] không quan trọng

Sau đó, Sau khi chúng tôi gọi dưa chua. dump[], chúng ta bỏ qua danh sách ban đầu trong bộ nhớ. Chúng tôi tải lại cùng dữ liệu đó từ đĩa bằng dưa chua. trọng tải[]

nhập dưa chua # Nhập dữ liệu danh sách. list = ["một", "hai", "ba"] print["trước. ", list] # Mở file và gọi pickle. bãi rác. với mở ["f. dưa chua", "wb"] dưới dạng f. dưa chua. dump[list, f] # Mở file và gọi pickle. trọng tải. với mở ["f. dưa chua", "rb"] dưới dạng f. dữ liệu = dưa chua. tải[f] in["sau. ", dữ liệu] trước. ['một', 'hai', 'ba'] sau. ['một hai ba']

Tệp mới, trống. Đối số thứ hai của open[] là một chuỗi chứa ký tự cờ "mode". "w" chỉ định chế độ chỉ ghi—không thực hiện thêm hoặc đọc

Đã xóa Nếu tệp tồn tại, nó sẽ bị xóa. Vì vậy hãy cẩn thận khi phát triển các chương trình với lời gọi này

# Tạo tập tin trống mới. #. Nếu tệp tồn tại, nó sẽ bị xóa nội dung. f = mở["C. \\chương trình\\kiểm tra. tập tin", "w"]

Viết dòng. Chương trình này viết các dòng vào một tập tin. Đầu tiên, nó tạo một tệp trống để ghi. Nó chỉ định chế độ "w" để tạo một tệp trống. Sau đó, nó viết hai dòng

Mẹo Cần có các dấu phân cách dòng [ký tự dòng mới]. Không có sẵn phương thức "writeline"

# Tạo một tệp trống để viết. với mở ["C. \\chương trình\\kiểm tra. tập tin", "w"] dưới dạng f. # Viết hai dòng vào tập tin. f. write["cat\n"] f. write["bird\n"] mèo chim

Đếm tần số ký tự. Chương trình này mở một tệp và đếm từng ký tự bằng từ điển tần số. Nó kết hợp open[], readlines và get[] của từ điển

Strip Chương trình tách từng dòng vì chúng ta không muốn bận tâm đến các ký tự xuống dòng

Nhận Mã sử ​​dụng dạng hai đối số của get. Nếu một giá trị tồn tại, nó được trả về—nếu không, 0 được trả về

Ví dụ văn bản, tập tin. txt, Python

aaaaa bbbbb aaaaa bbbbb aaaa bbbb CCcc xx y y y y y Z# Mở tệp. f = mở[r"C. \chương trình\tệp. txt", "r"] # Lưu trữ số ký tự. ký tự = {} # Lặp lại tệp và tăng một khóa cho mỗi ký tự. cho dòng trong f. đường đọc []. cho c trong dòng. dải[]. # Nhận giá trị hiện có cho ký tự này hoặc giá trị mặc định bằng 0. #. Thêm một và lưu trữ đó. ký tự [c] = ký tự. get[c, 0] + 1 # Số ký tự in. cho mục trong ký tự. mặt hàng[]. in[mục] ['a', 12] [' ', 5] ['C', 2] ['b', 15] ['c', 2] ['y', 5] ['x',

Lỗi IO. Chương trình này gây ra lỗi IOError. Tập tin "không. txt" rất có thể không có trên máy tính. Phương thức open[] làm tăng IOError với thông báo "Không có tệp hoặc thư mục như vậy"

# Đường dẫn không hợp lệ. tên = "/không. txt" # Cố gắng mở tệp. với open[name] là f. in [f. readline[]] Traceback [lần gọi gần đây nhất]. Tập tin ". ", dòng 7, inwith open[name] as f. Lỗi IO. [Errno 2] Không có tệp hoặc thư mục như vậy. '/không. txt'

tồn tại. Chúng tôi có thể ngăn IOError bằng cách kiểm tra đường dẫn trước. tồn tại. Điều này trả về true nếu tệp tồn tại và sai nếu không. Ở đây, phương thức trả về false—vì vậy open[] không bao giờ đạt được

Và Không có lỗi nào xảy ra, bởi vì chúng tôi tránh cố gắng mở tệp ngay từ đầu

nhập os # Tệp không tồn tại. tên = "/không. txt" # Xem đường dẫn có tồn tại không. nếu hệ điều hành. đường dẫn. tồn tại [tên]. # Mở tập tin. với open[name] là f. in [f. dòng đọc[]]

ngoại trừ ví dụ. Ví dụ này sử dụng cấu trúc thử tăng để nắm bắt lỗi. Khi phương thức open[] phát sinh lỗi, luồng điều khiển sẽ đi vào khối ngoại trừ

Và chương trình Python không kết thúc—thay vào đó, lỗi được bẫy và xử lý

thử. # Không tồn tại. tên = "/không. txt" # Cố gắng mở nó. với open[name] là f. in [f. readline[]] ngoại trừ IOError. # Xử lý lỗi. print["Đã xảy ra lỗi"] Đã xảy ra lỗi

Điểm chuẩn đọc, đọc. Có chi phí đáng kể trong việc truy cập tệp để đọc. Ở đây chúng tôi đánh giá việc sử dụng tệp trên một tệp có khoảng 1000 dòng

Phiên bản 1 Phiên bản mã này sử dụng phương thức readlines[] và sau đó lặp lại trên mỗi dòng, gọi len trên mỗi dòng

Phiên bản 2 Ở đây chúng tôi gọi read[] trên tệp, sau đó truy cập vào len của toàn bộ tệp cùng một lúc

Kết quả Đọc toàn bộ tệp trong một lần gọi nhanh hơn rất nhiều với phương thức read[]. Sử dụng đường đọc chậm hơn

Tệp, dòng lặp lại 1000 lần, kiểm tra. tập tin

Đây là một tập tin thú vị. Đây là một tập tin thú vị. . nhập thời gian in[thời gian. thời gian[]] # Phiên bản 1. sử dụng đường đọc. i = 0 trong khi tôi < 10000. với mở ["C. \\chương trình\\kiểm tra. tệp", "r"] dưới dạng f. đếm = 0 cho dòng trong f. đường đọc []. đếm += len[dòng] i += 1 bản in[thời gian. thời gian[]] # Phiên bản 2. sử dụng đọc. i = 0 trong khi tôi < 10000. với mở ["C. \\chương trình\\kiểm tra. tệp", "r"] dưới dạng f. đếm = 0 dữ liệu = f. read[] đếm = len[data] i += 1 print[time. thời gian[]]1406148416. 003978 1406148423. 383404 lượt đọc = 7. 38 giây 1406148425. 989555 đọc = 2. 61 giây

Đọc dữ liệu nhị phân. Một chương trình Python có thể đọc dữ liệu nhị phân từ một tệp. Chúng ta phải thêm "b" vào cuối đối số chế độ. Chúng tôi gọi read[] để đọc toàn bộ tệp vào đối tượng byte

Ở đây Một tập tin trên đĩa cục bộ được đọc. Đây là một tệp gzip, có các byte đặc biệt khi bắt đầu

# Đọc tệp ở dạng nhị phân. #. Chỉ định "b" để đọc và ghi nhị phân. f = mở[r"C. \stage-perls-cf\file-python", "rb"] # Đọc toàn bộ tệp. dữ liệu = f. read[] # Độ dài in của đối tượng byte kết quả. #. In ba byte đầu tiên [là gzip]. in[len[dữ liệu]] in[dữ liệu[0]] in[dữ liệu[1]] in[dữ liệu[2]]42078 31 139 8

định dạng. Các tệp đánh dấu thường được sử dụng trong các chương trình máy tính. Chúng tôi xử lý các tệp HTML và XML. Có nhiều cách để phân tích cú pháp hoặc quét các định dạng này—chúng tôi hiển thị HTMLParser và Expat

Tệp CSV Phân tích cú pháp tệp CSV rất quan trọng nhưng có thể rất tẻ nhạt. Chúng tôi giới thiệu mô-đun csv để giúp thực hiện dễ dàng hơn

Textwrap Mô-đun textwrap có thể gói lại các tệp văn bản. Điều này có thể cải thiện định dạng của các tập tin

một bản tóm tắt. Xử lý tệp là một khía cạnh quan trọng nhưng dễ bị lỗi trong quá trình phát triển chương trình. nó là cần thiết. Nó mang lại cho chúng tôi sự kiên trì dữ liệu

Dot Net Perls là tập hợp các ví dụ về mã đã được thử nghiệm. Các trang được cập nhật liên tục để luôn cập nhật, với ưu tiên hàng đầu là tính chính xác của mã

Sam Allen đam mê ngôn ngữ máy tính. Trước đây, công việc của anh ấy đã được Apple và Microsoft giới thiệu và anh ấy đã học máy tính tại một trường đại học chọn lọc ở Hoa Kỳ

Chủ Đề