Skip to content

Commit aa74ba0

Browse files
authored
Update 7.-input-and-output.md
1 parent 92392c4 commit aa74ba0

File tree

1 file changed

+14
-17
lines changed

1 file changed

+14
-17
lines changed

7.-input-and-output.md

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
# 7. Vào ra dữ liệu
22

3-
Như chúng ta đã biết, có một vài cách để thể hiện đầu ra của một chương trình: in dữ liệu ra màn hình dưới dạng con người có thể đọc được, hoặc ghi dữ liệu ra file để cho những mục đích sử dụng sau này.Trong chương này, sẽ để cập đến một vài cách xuất dữ liệu đầu ra.
3+
Như chúng ta đã biết, có một vài cách để thể hiện đầu ra của một chương trình: in dữ liệu ra màn hình dưới dạng con người có thể đọc được, hoặc ghi dữ liệu ra file để cho những mục đích sử dụng sau này. Trong chương này, sẽ để cập đến một vài cách xuất dữ liệu đầu ra.
44

55
### 7.1. Định dạng dữ liệu đầu ra thường dùng
66

7-
Hiện nay, có 2 cách để ghi giá trị: _các câu lệnh biểu diễn_ và hàm [`print()`](https://docs.python.org/3/library/functions.html#print). \(Cách thứ 3 là sử dụng phương thức `write()` của đối tượng file; chuẩn file đầu ra có thể được tham chiếu tại `sys.stdout`. Xem trong thư viện để biết thêm thông tin về `sys.stdout`.\)
8-
Thông thường, các lập trình viên muốn tùy chỉnh hiển thị dữ liệu theo mục đích của mình chứ không đơn giản là in ra giá trị với dấu cách. Vì vậy, Python cung cấp 2 cách để định dạng dữ liệu đầu ra: Cách 1, người lập trình tự xử lý chuỗi dùng các thao tác cắt chuỗi và nối chuỗi. Với kiểu chuỗi(string), python cung cấp phương thức hữu hiệu để căn chỉnh chuỗi dựa theo chiều rộng cột; chúng ta sẽ thảo luận ở phần sau về vấn đề này. Cách 2, sử dụng [Định dạng chuỗi ký tự](https://docs.python.org/3/reference/lexical_analysis.html#f-strings), hoặc hàm [`str.format()`](https://docs.python.org/3/library/stdtypes.html#str.format).
7+
Hiện nay, có 2 cách để ghi giá trị: _các câu lệnh biểu diễn_ và hàm [`print()`](https://docs.python.org/3/library/functions.html#print). \(Cách thứ 3 là sử dụng phương thức `write()` của đối tượng file; chuẩn file đầu ra có thể được tham chiếu tại `sys.stdout`. Xem trong thư viện để biết thêm thông tin về `sys.stdout`\). Thông thường, các lập trình viên muốn tùy chỉnh hiển thị dữ liệu theo mục đích của mình chứ không đơn giản là in ra giá trị với dấu cách. Vì vậy, Python cung cấp 2 cách để định dạng dữ liệu đầu ra: Cách 1, người lập trình tự xử lý chuỗi dùng các thao tác cắt chuỗi và nối chuỗi. Với kiểu chuỗi(string), python cung cấp phương thức hữu hiệu để căn chỉnh chuỗi dựa theo chiều rộng cột; chúng ta sẽ thảo luận ở phần sau về vấn đề này. Cách 2, sử dụng [Định dạng chuỗi ký tự](https://docs.python.org/3/reference/lexical_analysis.html#f-strings), hoặc hàm [`str.format()`](https://docs.python.org/3/library/stdtypes.html#str.format).
98

109
Mô-đun [`string`](https://docs.python.org/3/library/string.html#module-string) bao gồm một lớp mẫu ([`Template`](https://docs.python.org/3/library/string.html#string.Template) class) thường có cách khác để chuyển đổi các giá trị thành chuỗi.
1110

@@ -167,44 +166,42 @@ Jack: 4098; Sjoerd: 4127; Dcab: 8637678
167166

168167
Để có một cái nhìn toàn diện về định dạng chuỗi với [`str.format()`](https://docs.python.org/3/library/stdtypes.html#str.format), hãy xem chi tiết tại [Format String Syntax](https://docs.python.org/3/library/string.html#formatstrings).
169168

170-
#### 7.1.1. Old string formatting
169+
#### 7.1.1. Định dạng chuỗi truyền thống
171170

172-
The `%` operator can also be used for string formatting. It interprets the left argument much like a `sprintf()`-style format string to be applied to the right argument, and returns the string resulting from this formatting operation. For example:>>>
171+
Toán tử `%` cũng được sử dụng trong định dạng chuỗi. Nó diễn giải đối số bên trái giống như hàm `sprintf()`(hàm `sprintf()`: là một kiểu định dạng chuỗi được áp dụng cho đối số phải, và trả về chuỗi kết quả từ toán tử định dạng này). Ví dụ:>>>
173172

174173
```text
175174
>>> import math
176175
>>> print('The value of PI is approximately %5.3f.' % math.pi)
177176
The value of PI is approximately 3.142.
178177
```
178+
Để biết thêm thông tin, hãy xem ở [printf-style String Formatting](https://docs.python.org/3/library/stdtypes.html#old-string-formatting)
179179

180-
More information can be found in the [printf-style String Formatting](https://docs.python.org/3/library/stdtypes.html#old-string-formatting) section.
180+
### 7.2. Đọc và ghi tệp (file)
181181

182-
### 7.2. Reading and Writing Files
183-
184-
[`open()`](https://docs.python.org/3/library/functions.html#open) returns a [file object](https://docs.python.org/3/glossary.html#term-file-object), and is most commonly used with two arguments: `open(filename, mode)`.>>>
182+
Hàm [`open()`](https://docs.python.org/3/library/functions.html#open) trả về một đối tượng file([file object](https://docs.python.org/3/glossary.html#term-file-object), thông thường hàm này có 2 tham số: `open(filename, mode)`).>>>
185183

186184
```text
187185
>>> f = open('workfile', 'w')
188186
```
189187

190-
The first argument is a string containing the filename. The second argument is another string containing a few characters describing the way in which the file will be used. _mode_ can be `'r'` when the file will only be read, `'w'`for only writing \(an existing file with the same name will be erased\), and `'a'` opens the file for appending; any data written to the file is automatically added to the end. `'r+'` opens the file for both reading and writing. The _mode_ argument is optional; `'r'` will be assumed if it’s omitted.
188+
Tham số đầu tiên của hàm `open()` là một chuỗi bao gồm tên file. Tham số thứ 2 là một chuỗi bao gồm một vài ký tự để miêu tả cách sử dụng của file đó, gọi là _mode_. Nếu _mode_ `'r'`, file đó chỉ được đọc. Nếu _mode_`'w'`, file đó chỉ được ghi \(Nếu tồn tại 1 file có cùng tên, file cùng tên đó sẽ bị xóa đi khi sử dụng _mode_`'w'`\). Nếu _mode_`'a'` mở file để ghi thêm vào, trong trường hợp này, bất kỳ dữ liệu nào được thêm vào sẽ được tự động ghi ở cuối file. Nếu _mode_`'r+'`, mở file để vừa ghi vừa đọc. Tham số _mode_ là tùy chọn, trong trường hợp không khai báo _mode_, mặc định là `'r'`.
191189

192-
Normally, files are opened in _text mode_, that means, you read and write strings from and to the file, which are encoded in a specific encoding. If encoding is not specified, the default is platform dependent \(see [`open()`](https://docs.python.org/3/library/functions.html#open)\). `'b'`appended to the mode opens the file in _binary mode_: now the data is read and written in the form of bytes objects. This mode should be used for all files that don’t contain text.
190+
Thông thường, tệp được mở ở _text mode_, có nghĩa là, đọc là ghi chuỗi từ 1 file sang 1 file khác, chuỗi đó được mã hóa bằng một dạng mã hóa cụ thể. Nếu mã hóa không được chỉ định, kiểu mã hóa mặc định cho chuỗi trên phụ thuộc vào nền tảng \(xem hàm [`open()`](https://docs.python.org/3/library/functions.html#open)\). Sử dụng _mode_`'b'` khi mở file binary, trong trường hợp này, dữ liệu được đọc ghi dưới dạng đối tượng byte. Mode này được sử dụng khi tất cả các file không bao gồm ký tự văn bản (text).
193191

194-
In text mode, the default when reading is to convert platform-specific line endings \(`\n` on Unix, `\r\n` on Windows\) to just `\n`. When writing in text mode, the default is to convert occurrences of `\n` back to platform-specific line endings. This behind-the-scenes modification to file data is fine for text files, but will corrupt binary data like that in `JPEG` or `EXE` files. Be very careful to use binary mode when reading and writing such files.
192+
Ở chế độ văn bản (text mode), khi đọc file, `\n` mặc định được chuyển đổi phụ thuộc vào nền tảng cụ thể \(`\n` cho Unix, `\r\n` cho Windows\). Khi ghi file, `\n` mặc định được chuyển đổi trở lại phụ thuộc vào nền tảng. Việc chuyển đổi ngầm này rất có lợi đối với file văn bản, nhưng nó sẽ làm hỏng dữ liệu nhị phân giống như file `JPEG` hoặc file `EXE`. Vì vậy, hãy cẩn thận khi sử dụng chế độ nhị phân (binary mode) khi đọc và ghi file.
195193

196-
It is good practice to use the [`with`](https://docs.python.org/3/reference/compound_stmts.html#with) keyword when dealing with file objects. The advantage is that the file is properly closed after its suite finishes, even if an exception is raised at some point. Using [`with`](https://docs.python.org/3/reference/compound_stmts.html#with) is also much shorter than writing equivalent [`try`](https://docs.python.org/3/reference/compound_stmts.html#try)-[`finally`](https://docs.python.org/3/reference/compound_stmts.html#finally) blocks:>>>
194+
Sử dụng từ khóa [`with`](https://docs.python.org/3/reference/compound_stmts.html#with) với đối tượng file. Ưu điểm là đóng file ngay sau khi kết thúc phiên làm việc, thậm chí các lỗi ngoại lệ (exception) có thể được chỉ ra khi sử dụng [`with`](https://docs.python.org/3/reference/compound_stmts.html#with). Thêm vào đó, sử dụng [`with`](https://docs.python.org/3/reference/compound_stmts.html#with) cũng ngắn gọn hơn với cách viết [`try`](https://docs.python.org/3/reference/compound_stmts.html#try)-[`finally`](https://docs.python.org/3/reference/compound_stmts.html#finally):>>>
197195

198196
```text
199197
>>> with open('workfile') as f:
200198
... read_data = f.read()
201199
>>> f.closed
202200
True
203201
```
202+
Nếu không sử dụng từ khóa [`with`](https://docs.python.org/3/reference/compound_stmts.html#with), phải gọi hàm `f.close()` để đóng file và giải phóng tài nguyên hệ thống đã được sử dụng. Nếu không đóng file, file này vẫn để mở cho tới khi trình thu gom rác (garbage collector) của Python hủy đối tượng và đóng file. Một rủi ro khác là, thời điểm dọn dẹp của trình thu gom rác phụ thuộc vào các phiên bản python khác nhau.
204203

205-
If you’re not using the [`with`](https://docs.python.org/3/reference/compound_stmts.html#with) keyword, then you should call `f.close()` to close the file and immediately free up any system resources used by it. If you don’t explicitly close a file, Python’s garbage collector will eventually destroy the object and close the open file for you, but the file may stay open for a while. Another risk is that different Python implementations will do this clean-up at different times.
206-
207-
After a file object is closed, either by a [`with`](https://docs.python.org/3/reference/compound_stmts.html#with) statement or by calling `f.close()`, attempts to use the file object will automatically fail.>>>
204+
Lưu ý, một khi đối tượng file được đóng, khi sử dụng hoặc là câu lệnh [`with`](https://docs.python.org/3/reference/compound_stmts.html#with) hoặc là đã gọi hàm `f.close()`, sẽ không thể thao tác trên đối tượng file đó nữa.>>>
208205

209206
```text
210207
>>> f.close()
@@ -214,7 +211,7 @@ Traceback (most recent call last):
214211
ValueError: I/O operation on closed file
215212
```
216213

217-
#### 7.2.1. Methods of File Objects
214+
#### 7.2.1. Các phương thức sử dụng cho đối tượng file
218215

219216
The rest of the examples in this section will assume that a file object called `f` has already been created.
220217

0 commit comments

Comments
 (0)