Hướng dẫn the write method() returns in python - phương thức write () trả về trong python
Phương thức tập tin Show
Thí dụMở tệp bằng "A" để thêm vào, sau đó thêm một số văn bản vào tệp: f = open ("demofile2.txt", "a") f.write ("gặp bạn sớm!") f.close () #Open và đọc tệp sau khi thêm: f = open ("demofile2.txt", "r") in (f.Read ()) Chạy ví dụ » Định nghĩa và cách sử dụngPhương thức Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line1 ghi một văn bản được chỉ định vào tệp. Trường hợp văn bản được chỉ định sẽ được chèn phụ thuộc vào chế độ tệp và vị trí luồng. ________ 32: & nbsp; Văn bản sẽ được chèn tại vị trí luồng tệp hiện tại, mặc định ở cuối tệp. Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line3: Tệp sẽ được xóa trước khi văn bản sẽ được chèn tại vị trí luồng tệp hiện tại, mặc định 0. Cú phápGiá trị tham số
Nhiều ví dụ hơnThí dụVí dụ tương tự như trên, nhưng chèn một dòng ngắt trước khi văn bản được chèn: f = open ("demofile2.txt", "a") f.write ("\ nsee bạn sớm!") f.close () #Open và đọc tệp sau khi thêm: f = open ("demofile2.txt", "r") in (f.Read ()) Chạy ví dụ » Phương thức tập tin Sự mô tảPhương thức tệp python write () ghi một chuỗi str vào tệp. Không có giá trị quay lại. Do bộ đệm, chuỗi có thể không thực sự hiển thị trong tệp cho đến khi phương thức xả () hoặc đóng () được gọi.write() writes a string str to the file. There is no return value. Due to buffering, the string may not actually show up in the file until the flush() or close() method is called. Cú phápSau đây là Syntax cho phương thức write () -write() method − fileObject.write( str ) Thông số
Giá trị trả vềPhương pháp này không trả về bất kỳ giá trị nào. Thí dụVí dụ sau đây cho thấy cách sử dụng phương thức write (). This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line #!/usr/bin/python # Open a file in write mode fo = open("foo.txt", "rw+") print "Name of the file: ", fo.name # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line str = "This is 6th line" # Write a line at the end of the file. fo.seek(0, 2) line = fo.write( str ) # Now read complete file from beginning. fo.seek(0,0) for index in range(6): line = fo.next() print "Line No %d - %s" % (index, line) # Close opend file fo.close() Khi chúng tôi chạy trên chương trình, nó tạo ra kết quả sau - Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line python_files_io.htm Có một số cách để trình bày đầu ra của một chương trình; Dữ liệu có thể được in dưới dạng người có thể đọc được hoặc được ghi vào một tệp để sử dụng trong tương lai. Chương này sẽ thảo luận về một số khả năng. 7.1. Định dạng đầu ra fancierFancier Output Formatting¶Cho đến nay, chúng tôi đã gặp hai cách viết các giá trị: các câu lệnh biểu thức và hàm Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line4. . Thông thường, bạn sẽ muốn kiểm soát nhiều hơn đối với định dạng đầu ra của mình hơn là chỉ đơn giản là in các giá trị phân tách không gian. Có một số cách để định dạng đầu ra.
Khi bạn không cần đầu ra ưa thích nhưng chỉ muốn hiển thị nhanh một số biến cho mục đích gỡ lỗi, bạn có thể chuyển đổi bất kỳ giá trị nào thành một chuỗi với các hàm >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'4 hoặc >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'5. Hàm >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'5 có nghĩa là trả về các biểu diễn của các giá trị khá có thể đọc được, trong khi >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'4 có nghĩa là tạo ra các biểu diễn có thể được trình thông dịch đọc (hoặc sẽ buộc >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'8 nếu không có cú pháp tương đương). Đối với các đối tượng không có một đại diện cụ thể cho tiêu dùng của con người, >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'5 sẽ trả về giá trị tương tự như >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'4. Nhiều giá trị, chẳng hạn như số hoặc cấu trúc như danh sách và từ điển, có cùng một biểu diễn bằng cách sử dụng một trong hai hàm. Chuỗi, đặc biệt, có hai đại diện riêng biệt. Vài ví dụ: >>> s = 'Hello, world.' >>> str(s) 'Hello, world.' >>> repr(s) "'Hello, world.'" >>> str(1/7) '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...' >>> print(s) The value of x is 32.5, and y is 40000... >>> # The repr() of a string adds string quotes and backslashes: ... hello = 'hello, world\n' >>> hellos = repr(hello) >>> print(hellos) 'hello, world\n' >>> # The argument to repr() may be any Python object: ... repr((x, y, ('spam', 'eggs'))) "(32.5, 40000, ('spam', 'eggs'))" Mô -đun >>> yes_votes = 42_572_654 >>> no_votes = 43_132_495 >>> percentage = yes_votes / (yes_votes + no_votes) >>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage) ' 42572654 YES votes 49.67%'1 chứa một lớp >>> yes_votes = 42_572_654 >>> no_votes = 43_132_495 >>> percentage = yes_votes / (yes_votes + no_votes) >>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage) ' 42572654 YES votes 49.67%'2 cung cấp một cách khác để thay thế các giá trị thành các chuỗi, sử dụng trình giữ chỗ như >>> yes_votes = 42_572_654 >>> no_votes = 43_132_495 >>> percentage = yes_votes / (yes_votes + no_votes) >>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage) ' 42572654 YES votes 49.67%'3 và thay thế chúng bằng các giá trị từ từ điển, nhưng cung cấp ít kiểm soát định dạng hơn nhiều. 7.1.1. Chuỗi được định dạng theo nghĩa chữFormatted String Literals¶Các chuỗi chữ được định dạng (còn được gọi là F-Strings viết tắt) cho phép bạn bao gồm giá trị của các biểu thức python bên trong một chuỗi bằng cách tiền tố chuỗi với Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line7 or Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line8 and writing expressions as >>> yes_votes = 42_572_654 >>> no_votes = 43_132_495 >>> percentage = yes_votes / (yes_votes + no_votes) >>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage) ' 42572654 YES votes 49.67%'6. Một định dạng định dạng tùy chọn có thể theo biểu thức. Điều này cho phép kiểm soát nhiều hơn về cách giá trị được định dạng. Các ví dụ sau đây làm tròn Pi đến ba vị trí sau thập phân: >>> import math >>> print(f'The value of pi is approximately {math.pi:.3f}.') The value of pi is approximately 3.142. Vượt qua một số nguyên sau >>> yes_votes = 42_572_654 >>> no_votes = 43_132_495 >>> percentage = yes_votes / (yes_votes + no_votes) >>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage) ' 42572654 YES votes 49.67%'7 sẽ khiến trường đó có số lượng ký tự tối thiểu. Điều này rất hữu ích để làm cho các cột xếp hàng. >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 7678 Các sửa đổi khác có thể được sử dụng để chuyển đổi giá trị trước khi nó được định dạng. >>> yes_votes = 42_572_654 >>> no_votes = 43_132_495 >>> percentage = yes_votes / (yes_votes + no_votes) >>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage) ' 42572654 YES votes 49.67%'8 áp dụng >>> yes_votes = 42_572_654 >>> no_votes = 43_132_495 >>> percentage = yes_votes / (yes_votes + no_votes) >>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage) ' 42572654 YES votes 49.67%'9, >>> s = 'Hello, world.' >>> str(s) 'Hello, world.' >>> repr(s) "'Hello, world.'" >>> str(1/7) '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...' >>> print(s) The value of x is 32.5, and y is 40000... >>> # The repr() of a string adds string quotes and backslashes: ... hello = 'hello, world\n' >>> hellos = repr(hello) >>> print(hellos) 'hello, world\n' >>> # The argument to repr() may be any Python object: ... repr((x, y, ('spam', 'eggs'))) "(32.5, 40000, ('spam', 'eggs'))"0 áp dụng >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'5 và >>> s = 'Hello, world.' >>> str(s) 'Hello, world.' >>> repr(s) "'Hello, world.'" >>> str(1/7) '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...' >>> print(s) The value of x is 32.5, and y is 40000... >>> # The repr() of a string adds string quotes and backslashes: ... hello = 'hello, world\n' >>> hellos = repr(hello) >>> print(hellos) 'hello, world\n' >>> # The argument to repr() may be any Python object: ... repr((x, y, ('spam', 'eggs'))) "(32.5, 40000, ('spam', 'eggs'))"2 áp dụng >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'4: >>> animals = 'eels' >>> print(f'My hovercraft is full of {animals}.') My hovercraft is full of eels. >>> print(f'My hovercraft is full of {animals!r}.') My hovercraft is full of 'eels'. Bộ xác định >>> s = 'Hello, world.' >>> str(s) 'Hello, world.' >>> repr(s) "'Hello, world.'" >>> str(1/7) '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...' >>> print(s) The value of x is 32.5, and y is 40000... >>> # The repr() of a string adds string quotes and backslashes: ... hello = 'hello, world\n' >>> hellos = repr(hello) >>> print(hellos) 'hello, world\n' >>> # The argument to repr() may be any Python object: ... repr((x, y, ('spam', 'eggs'))) "(32.5, 40000, ('spam', 'eggs'))"4 có thể được sử dụng để mở rộng biểu thức sang văn bản của biểu thức, một dấu bằng, sau đó biểu diễn của biểu thức được đánh giá: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line0 Xem các biểu thức tự ghi chép để biết thêm thông tin về trình xác định >>> s = 'Hello, world.' >>> str(s) 'Hello, world.' >>> repr(s) "'Hello, world.'" >>> str(1/7) '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...' >>> print(s) The value of x is 32.5, and y is 40000... >>> # The repr() of a string adds string quotes and backslashes: ... hello = 'hello, world\n' >>> hellos = repr(hello) >>> print(hellos) 'hello, world\n' >>> # The argument to repr() may be any Python object: ... repr((x, y, ('spam', 'eggs'))) "(32.5, 40000, ('spam', 'eggs'))"4. Để biết tham khảo về các thông số kỹ thuật định dạng này, hãy xem Hướng dẫn tham khảo cho ngôn ngữ nhỏ Đặc tả Định dạng.self-documenting expressions for more information on the >>> s = 'Hello, world.' >>> str(s) 'Hello, world.' >>> repr(s) "'Hello, world.'" >>> str(1/7) '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...' >>> print(s) The value of x is 32.5, and y is 40000... >>> # The repr() of a string adds string quotes and backslashes: ... hello = 'hello, world\n' >>> hellos = repr(hello) >>> print(hellos) 'hello, world\n' >>> # The argument to repr() may be any Python object: ... repr((x, y, ('spam', 'eggs'))) "(32.5, 40000, ('spam', 'eggs'))"4 specifier. For a reference on these format specifications, see the reference guide for the Format Specification Mini-Language. 7.1.2. Phương thức định dạng chuỗi ()The String format() Method¶Việc sử dụng cơ bản của phương thức >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'1 trông như thế này: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line1 Các dấu ngoặc và ký tự trong chúng (được gọi là trường định dạng) được thay thế bằng các đối tượng được truyền vào phương thức >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'1. Một số trong ngoặc có thể được sử dụng để chỉ vị trí của đối tượng được chuyển vào phương thức >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'1. This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line2 Nếu các đối số từ khóa được sử dụng trong phương thức >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'1, các giá trị của chúng được đề cập bằng cách sử dụng tên của đối số. This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line3 Đối số vị trí và từ khóa có thể được kết hợp một cách tùy ý: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line4 Nếu bạn có một chuỗi định dạng thực sự dài mà bạn không muốn chia tách, sẽ thật tuyệt nếu bạn có thể tham khảo các biến được định dạng theo tên thay vì theo vị trí. Điều này có thể được thực hiện bằng cách đơn giản là vượt qua Dict và sử dụng dấu ngoặc vuông >>> import math >>> print(f'The value of pi is approximately {math.pi:.3f}.') The value of pi is approximately 3.142.0 để truy cập các phím. This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line5 Điều này cũng có thể được thực hiện bằng cách truyền từ điển >>> import math >>> print(f'The value of pi is approximately {math.pi:.3f}.') The value of pi is approximately 3.142.1 làm đối số từ khóa với ký hiệu >>> import math >>> print(f'The value of pi is approximately {math.pi:.3f}.') The value of pi is approximately 3.142.2. This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line6 Điều này đặc biệt hữu ích khi kết hợp với hàm tích hợp >>> import math >>> print(f'The value of pi is approximately {math.pi:.3f}.') The value of pi is approximately 3.142.3, trả về một từ điển chứa tất cả các biến cục bộ. Ví dụ, các dòng sau đây tạo ra một tập hợp các cột được căn chỉnh gọn gàng cho các số nguyên và hình vuông và hình khối của chúng: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line7 Để biết tổng quan đầy đủ về định dạng chuỗi với >>> year = 2016 >>> event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'1, hãy xem Cú pháp Chuỗi định dạng.Format String Syntax. 7.1.3. Định dạng chuỗi thủ côngManual String Formatting¶Ở đây, cùng một bảng hình vuông và hình khối, được định dạng bằng tay: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line8 (Lưu ý rằng một không gian giữa mỗi cột được thêm vào bằng cách Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line4 hoạt động: Nó luôn thêm khoảng trắng giữa các đối số của nó.) Phương pháp >>> import math >>> print(f'The value of pi is approximately {math.pi:.3f}.') The value of pi is approximately 3.142.6 của các đối tượng chuỗi phải chuyển đổi một chuỗi trong một trường có chiều rộng nhất định bằng cách đệm nó với các khoảng trống ở bên trái. Có các phương pháp tương tự >>> import math >>> print(f'The value of pi is approximately {math.pi:.3f}.') The value of pi is approximately 3.142.7 và >>> import math >>> print(f'The value of pi is approximately {math.pi:.3f}.') The value of pi is approximately 3.142.8. Các phương thức này không viết bất cứ điều gì, chúng chỉ trả lại một chuỗi mới. Nếu chuỗi đầu vào quá dài, chúng không cắt nó, nhưng trả lại nó không thay đổi; Điều này sẽ làm rối tung ra cột của bạn nhưng điều đó thường tốt hơn so với giải pháp thay thế, điều này sẽ nói dối về một giá trị. . Có một phương pháp khác, >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 76780, trong đó đệm một chuỗi số ở bên trái với số không. Nó hiểu về các dấu hiệu cộng và trừ: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line9 7.1.4. Định dạng chuỗi cũOld string formatting¶Toán tử % (modulo) cũng có thể được sử dụng cho định dạng chuỗi. Cho >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 76781, các trường hợp >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 76782 trong >>> yes_votes = 42_572_654 >>> no_votes = 43_132_495 >>> percentage = yes_votes / (yes_votes + no_votes) >>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage) ' 42572654 YES votes 49.67%'1 được thay thế bằng 0 hoặc nhiều yếu tố của >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 76784. Hoạt động này thường được gọi là nội suy chuỗi. Ví dụ: #!/usr/bin/python # Open a file in write mode fo = open("foo.txt", "rw+") print "Name of the file: ", fo.name # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line str = "This is 6th line" # Write a line at the end of the file. fo.seek(0, 2) line = fo.write( str ) # Now read complete file from beginning. fo.seek(0,0) for index in range(6): line = fo.next() print "Line No %d - %s" % (index, line) # Close opend file fo.close()0 Thêm thông tin có thể được tìm thấy trong phần định dạng chuỗi kiểu printf.printf-style String Formatting section. 7.2. Đọc và viết các tập tinReading and Writing Files¶>>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 76785 Trả về một đối tượng tệp và được sử dụng phổ biến nhất với hai đối số vị trí và một đối số từ khóa: >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 76786file object, and is most commonly used with two positional arguments and one keyword argument: >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 76786 #!/usr/bin/python # Open a file in write mode fo = open("foo.txt", "rw+") print "Name of the file: ", fo.name # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line str = "This is 6th line" # Write a line at the end of the file. fo.seek(0, 2) line = fo.write( str ) # Now read complete file from beginning. fo.seek(0,0) for index in range(6): line = fo.next() print "Line No %d - %s" % (index, line) # Close opend file fo.close()1 Đối số đầu tiên là một chuỗi chứa tên tệp. Đối số thứ hai là một chuỗi khác chứa một vài ký tự mô tả cách sử dụng tệp. Chế độ có thể là >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 76787 khi tệp sẽ chỉ được đọc, >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 76788 chỉ để viết (một tệp hiện có có cùng tên sẽ bị xóa) và >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 76789 mở tệp để thêm; Bất kỳ dữ liệu nào được ghi vào tệp được tự động thêm vào cuối. >>> animals = 'eels' >>> print(f'My hovercraft is full of {animals}.') My hovercraft is full of eels. >>> print(f'My hovercraft is full of {animals!r}.') My hovercraft is full of 'eels'.0 mở tập tin cho cả đọc và viết. Đối số chế độ là tùy chọn; >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 76787 sẽ được giả định nếu nó bị bỏ qua. Thông thường, các tệp được mở trong chế độ văn bản, điều đó có nghĩa là, bạn đọc và ghi các chuỗi từ và vào tệp, được mã hóa trong một mã hóa cụ thể. Nếu mã hóa không được chỉ định, mặc định phụ thuộc vào nền tảng (xem >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 76785). Vì UTF-8 là tiêu chuẩn de-facto hiện đại, >>> animals = 'eels' >>> print(f'My hovercraft is full of {animals}.') My hovercraft is full of eels. >>> print(f'My hovercraft is full of {animals!r}.') My hovercraft is full of 'eels'.3 được khuyến nghị trừ khi bạn biết rằng bạn cần sử dụng mã hóa khác. Lắp một >>> animals = 'eels' >>> print(f'My hovercraft is full of {animals}.') My hovercraft is full of eels. >>> print(f'My hovercraft is full of {animals!r}.') My hovercraft is full of 'eels'.4 vào chế độ mở tệp ở chế độ nhị phân. Dữ liệu chế độ nhị phân được đọc và viết dưới dạng đối tượng >>> animals = 'eels' >>> print(f'My hovercraft is full of {animals}.') My hovercraft is full of eels. >>> print(f'My hovercraft is full of {animals!r}.') My hovercraft is full of 'eels'.5. Bạn không thể chỉ định mã hóa khi mở tệp ở chế độ nhị phân. Trong chế độ văn bản, mặc định khi đọc là chuyển đổi các kết thúc dòng dành riêng cho nền tảng ( >>> animals = 'eels' >>> print(f'My hovercraft is full of {animals}.') My hovercraft is full of eels. >>> print(f'My hovercraft is full of {animals!r}.') My hovercraft is full of 'eels'.6 trên Unix, >>> animals = 'eels' >>> print(f'My hovercraft is full of {animals}.') My hovercraft is full of eels. >>> print(f'My hovercraft is full of {animals!r}.') My hovercraft is full of 'eels'.7 trên Windows) thành >>> animals = 'eels' >>> print(f'My hovercraft is full of {animals}.') My hovercraft is full of eels. >>> print(f'My hovercraft is full of {animals!r}.') My hovercraft is full of 'eels'.6. Khi viết ở chế độ văn bản, mặc định là chuyển đổi các lần xuất hiện của >>> animals = 'eels' >>> print(f'My hovercraft is full of {animals}.') My hovercraft is full of eels. >>> print(f'My hovercraft is full of {animals!r}.') My hovercraft is full of 'eels'.6 trở lại kết thúc dòng cụ thể của nền tảng. Việc sửa đổi hậu trường này đối với dữ liệu tệp là tốt cho các tệp văn bản, nhưng sẽ tham nhũng dữ liệu nhị phân như thế trong các tệp This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line00 hoặc This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line01. Hãy rất cẩn thận để sử dụng chế độ nhị phân khi đọc và viết các tệp đó. Đó là thực tế tốt để sử dụng từ khóa This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line02 khi xử lý các đối tượng tệp. Ưu điểm là tệp được đóng đúng sau khi bộ của nó kết thúc, ngay cả khi một ngoại lệ được nâng lên tại một số điểm. Sử dụng This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line02 cũng ngắn hơn nhiều so với việc viết tương đương ____ 104 -________ 105 khối: #!/usr/bin/python # Open a file in write mode fo = open("foo.txt", "rw+") print "Name of the file: ", fo.name # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line str = "This is 6th line" # Write a line at the end of the file. fo.seek(0, 2) line = fo.write( str ) # Now read complete file from beginning. fo.seek(0,0) for index in range(6): line = fo.next() print "Line No %d - %s" % (index, line) # Close opend file fo.close()2 Nếu bạn không sử dụng từ khóa This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line02, thì bạn nên gọi This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line07 để đóng tệp và ngay lập tức giải phóng bất kỳ tài nguyên hệ thống nào được sử dụng bởi nó. Cảnh báo Gọi This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line08 mà không sử dụng từ khóa This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line02 hoặc gọi This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line07 có thể dẫn đến các đối số của This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line08 không được ghi hoàn toàn vào đĩa, ngay cả khi chương trình thoát ra thành công.might result in the arguments of This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line08 not being completely written to the disk, even if the program exits successfully. Sau khi một đối tượng tệp được đóng, bằng câu lệnh This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line02 hoặc bằng cách gọi This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line07, cố gắng sử dụng đối tượng tệp sẽ tự động bị lỗi. #!/usr/bin/python # Open a file in write mode fo = open("foo.txt", "rw+") print "Name of the file: ", fo.name # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line str = "This is 6th line" # Write a line at the end of the file. fo.seek(0, 2) line = fo.write( str ) # Now read complete file from beginning. fo.seek(0,0) for index in range(6): line = fo.next() print "Line No %d - %s" % (index, line) # Close opend file fo.close()3 7.2.1. Phương thức của đối tượng tệpMethods of File Objects¶Phần còn lại của các ví dụ trong phần này sẽ cho rằng một đối tượng tệp được gọi là Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line7 đã được tạo. Để đọc nội dung của tệp, hãy gọi This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line15, đọc một số lượng dữ liệu và trả về nó dưới dạng chuỗi (ở chế độ văn bản) hoặc đối tượng byte (ở chế độ nhị phân). Kích thước là một đối số số tùy chọn. Khi kích thước bị bỏ qua hoặc âm, toàn bộ nội dung của tệp sẽ được đọc và trả về; Đó là vấn đề của bạn nếu tệp lớn gấp đôi so với bộ nhớ máy của bạn. Mặt khác, ở hầu hết các ký tự kích thước (ở chế độ văn bản) hoặc byte kích thước (ở chế độ nhị phân) được đọc và trả về. Nếu kết thúc của tệp đã đạt được, This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line16 sẽ trả về một chuỗi trống ( This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line17). #!/usr/bin/python # Open a file in write mode fo = open("foo.txt", "rw+") print "Name of the file: ", fo.name # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line str = "This is 6th line" # Write a line at the end of the file. fo.seek(0, 2) line = fo.write( str ) # Now read complete file from beginning. fo.seek(0,0) for index in range(6): line = fo.next() print "Line No %d - %s" % (index, line) # Close opend file fo.close()4 This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line18 đọc một dòng duy nhất từ tệp; Một ký tự dòng mới ( >>> animals = 'eels' >>> print(f'My hovercraft is full of {animals}.') My hovercraft is full of eels. >>> print(f'My hovercraft is full of {animals!r}.') My hovercraft is full of 'eels'.6) bị bỏ lại ở cuối chuỗi và chỉ bị bỏ qua trên dòng cuối cùng của tệp nếu tệp không kết thúc trong một dòng mới. Điều này làm cho giá trị trả lại không rõ ràng; Nếu This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line18 trả về một chuỗi trống, phần cuối của tệp đã đạt được, trong khi một dòng trống được biểu thị bằng This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line21, một chuỗi chỉ chứa một dòng mới. #!/usr/bin/python # Open a file in write mode fo = open("foo.txt", "rw+") print "Name of the file: ", fo.name # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line str = "This is 6th line" # Write a line at the end of the file. fo.seek(0, 2) line = fo.write( str ) # Now read complete file from beginning. fo.seek(0,0) for index in range(6): line = fo.next() print "Line No %d - %s" % (index, line) # Close opend file fo.close()5 Để đọc các dòng từ một tệp, bạn có thể lặp qua đối tượng tệp. Đây là bộ nhớ hiệu quả, nhanh chóng và dẫn đến mã đơn giản: #!/usr/bin/python # Open a file in write mode fo = open("foo.txt", "rw+") print "Name of the file: ", fo.name # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line str = "This is 6th line" # Write a line at the end of the file. fo.seek(0, 2) line = fo.write( str ) # Now read complete file from beginning. fo.seek(0,0) for index in range(6): line = fo.next() print "Line No %d - %s" % (index, line) # Close opend file fo.close()6 Nếu bạn muốn đọc tất cả các dòng của một tệp trong danh sách, bạn cũng có thể sử dụng This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line22 hoặc This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line23. This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line24 ghi nội dung của chuỗi vào tệp, trả về số lượng ký tự được viết. #!/usr/bin/python # Open a file in write mode fo = open("foo.txt", "rw+") print "Name of the file: ", fo.name # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line str = "This is 6th line" # Write a line at the end of the file. fo.seek(0, 2) line = fo.write( str ) # Now read complete file from beginning. fo.seek(0,0) for index in range(6): line = fo.next() print "Line No %d - %s" % (index, line) # Close opend file fo.close()7 Các loại đối tượng khác cần được chuyển đổi - thành một chuỗi (ở chế độ văn bản) hoặc đối tượng byte (ở chế độ nhị phân) - trước khi viết chúng: #!/usr/bin/python # Open a file in write mode fo = open("foo.txt", "rw+") print "Name of the file: ", fo.name # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line str = "This is 6th line" # Write a line at the end of the file. fo.seek(0, 2) line = fo.write( str ) # Now read complete file from beginning. fo.seek(0,0) for index in range(6): line = fo.next() print "Line No %d - %s" % (index, line) # Close opend file fo.close()8 This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line25 Trả về một số nguyên cung cấp cho đối tượng tệp vị trí hiện tại trong tệp được biểu thị bằng số byte từ đầu tệp khi ở chế độ nhị phân và số mờ khi ở chế độ văn bản. Để thay đổi vị trí đối tượng tệp, hãy sử dụng This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line26. Vị trí được tính toán từ việc thêm bù vào một điểm tham chiếu; Điểm tham chiếu được chọn bởi đối số WHENCE. Giá trị từ 0 đo từ đầu tệp, 1 sử dụng vị trí tệp hiện tại và 2 sử dụng phần cuối của tệp làm điểm tham chiếu. từ đó có thể được bỏ qua và mặc định là 0, sử dụng đầu của tệp làm điểm tham chiếu. #!/usr/bin/python # Open a file in write mode fo = open("foo.txt", "rw+") print "Name of the file: ", fo.name # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line str = "This is 6th line" # Write a line at the end of the file. fo.seek(0, 2) line = fo.write( str ) # Now read complete file from beginning. fo.seek(0,0) for index in range(6): line = fo.next() print "Line No %d - %s" % (index, line) # Close opend file fo.close()9 Trong các tệp văn bản (những tệp được mở mà không có This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line27 trong chuỗi chế độ), chỉ tìm kiếm liên quan đến đầu của tệp được cho phép (ngoại lệ đang tìm kiếm kết thúc tệp với This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line28) và các giá trị bù hợp lệ duy nhất là các giá trị được trả về từ This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line25, hoặc không. Bất kỳ giá trị bù khác tạo ra hành vi không xác định. Các đối tượng tệp có một số phương thức bổ sung, chẳng hạn như This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line30 và This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line31 ít được sử dụng ít thường xuyên hơn; Tham khảo tài liệu tham khảo thư viện để biết hướng dẫn đầy đủ về các đối tượng tệp. 7.2.2. Lưu dữ liệu có cấu trúc với ________ 132¶Saving structured data with This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line 32¶Chuỗi có thể dễ dàng được ghi và đọc từ một tập tin. Các số cần thêm một chút nỗ lực, vì phương thức This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line33 chỉ trả về chuỗi, sẽ phải được chuyển đến một hàm như This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line34, có một chuỗi như This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line35 và trả về giá trị số của nó 123. Khi bạn muốn lưu các loại dữ liệu phức tạp hơn như Danh sách và từ điển lồng nhau, phân tích cú pháp và tuần tự bằng tay trở nên phức tạp. Thay vì để người dùng liên tục viết và gỡ lỗi mã để lưu các loại dữ liệu phức tạp vào các tệp, Python cho phép bạn sử dụng định dạng trao đổi dữ liệu phổ biến có tên là JSON (ký hiệu đối tượng JavaScript). Mô -đun tiêu chuẩn được gọi là This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line32 có thể lấy hệ thống phân cấp dữ liệu Python và chuyển đổi chúng thành các biểu diễn chuỗi; Quá trình này được gọi là tuần tự hóa. Tái tạo dữ liệu từ biểu diễn chuỗi được gọi là khử Deserializing. Giữa tuần tự hóa và giải phóng hóa, chuỗi đại diện cho đối tượng có thể đã được lưu trữ trong một tệp hoặc dữ liệu hoặc gửi qua kết nối mạng đến một số máy xa. Ghi chú Định dạng JSON thường được sử dụng bởi các ứng dụng hiện đại để cho phép trao đổi dữ liệu. Nhiều lập trình viên đã quen thuộc với nó, điều này làm cho nó trở thành một lựa chọn tốt cho khả năng tương tác. Nếu bạn có một đối tượng This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line37, bạn có thể xem biểu diễn chuỗi JSON của nó bằng một dòng mã đơn giản: Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line0 Một biến thể khác của hàm This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line38, được gọi là This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line39, chỉ đơn giản là tuần tự hóa đối tượng thành tệp văn bản. Vì vậy, nếu Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line7 là một đối tượng tệp văn bản được mở để viết, chúng ta có thể làm điều này:text file. So if Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line7 is a text file object opened for writing, we can do this: Để giải mã lại đối tượng, nếu Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line7 là một tệp nhị phân hoặc đối tượng tệp văn bản đã được mở để đọc:binary file or text file object which has been opened for reading: Ghi chú Định dạng JSON thường được sử dụng bởi các ứng dụng hiện đại để cho phép trao đổi dữ liệu. Nhiều lập trình viên đã quen thuộc với nó, điều này làm cho nó trở thành một lựa chọn tốt cho khả năng tương tác.text file for both of reading and writing. Nếu bạn có một đối tượng This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line37, bạn có thể xem biểu diễn chuỗi JSON của nó bằng một dòng mã đơn giản: Một biến thể khác của hàm This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line38, được gọi là This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line39, chỉ đơn giản là tuần tự hóa đối tượng thành tệp văn bản. Vì vậy, nếu Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line7 là một đối tượng tệp văn bản được mở để viết, chúng ta có thể làm điều này: Để giải mã lại đối tượng, nếu Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line7 là một tệp nhị phân hoặc đối tượng tệp văn bản đã được mở để đọc: Các tệp JSON phải được mã hóa trong UTF-8. Sử dụng >>> animals = 'eels' >>> print(f'My hovercraft is full of {animals}.') My hovercraft is full of eels. >>> print(f'My hovercraft is full of {animals!r}.') My hovercraft is full of 'eels'.3 khi mở tệp JSON làm tệp văn bản cho cả đọc và viết.JSON, pickle is a protocol which allows the serialization of arbitrarily complex Python objects. As such, it is specific to Python and cannot be used to communicate with applications written in other languages. It is also insecure by default: deserializing pickle data coming from an untrusted source can execute arbitrary code, if the data was crafted by a skilled attacker. Viết () trở lại trong Python là gì?Sự mô tả. Phương thức tệp python write () ghi một chuỗi str vào tệp. Không có giá trị quay lại. Do bộ đệm, chuỗi có thể không thực sự hiển thị trong tệp cho đến khi phương thức xả () hoặc đóng () được gọi.There is no return value. Due to buffering, the string may not actually show up in the file until the flush() or close() method is called.
Làm cách nào để sử dụng chế độ ghi trong Python?Có 6 chế độ truy cập trong Python ... Chỉ đọc ('r'): Mở tệp văn bản để đọc..... Đọc và viết ('R+'): Mở tệp để đọc và viết..... Chỉ viết ('W'): Mở tệp để viết..... Viết và đọc ('W+'): Mở tệp để đọc và viết..... Chỉ nối thêm ('A'): Mở tệp để viết .. Hàm open () trả về cái gì?Hàm Open () sẽ trả về một bộ mô tả tệp cho tệp được đặt tên là bộ mô tả tệp thấp nhất hiện không mở cho quy trình đó.Mô tả tệp mở là mới và do đó, bộ mô tả tệp sẽ không chia sẻ nó với bất kỳ quy trình nào khác trong hệ thống.a file descriptor for the named file that is the lowest file descriptor not currently open for that process. The open file description is new, and therefore the file descriptor shall not share it with any other process in the system.
Tệp viết là gì?Hàm Open () trả về một đối tượng tệp có hai phương thức hữu ích để ghi văn bản vào tệp: write () và writeLines ().Phương thức write () ghi một chuỗi vào một tệp văn bản.Phương thức writeLines () Viết danh sách các chuỗi vào một tệp cùng một lúc.The write() method writes a string to a text file. The writelines() method write a list of strings to a file at once. |