Skip to content

Commit fc0a872

Browse files
authored
feat(python): add term entry for 'with' keyword with syntax, examples… (#7778)
* feat(python): add term entry for 'with' keyword with syntax, examples, and codebyte (#7738) * Prettier fix * Refine 'with' keyword documentation in Python Updated the documentation for the 'with' keyword in Python. Improved clarity by refining explanations and examples, and corrected method names. * Update return value explanation in with.md Clarify return value description for context manager. ---------
1 parent 798084e commit fc0a872

File tree

1 file changed

+88
-0
lines changed
  • content/python/concepts/keywords/terms/with

1 file changed

+88
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
Title: 'with'
3+
Description: 'Simplifies resource management by automatically handling setup and teardown actions using context managers.'
4+
Subjects:
5+
- 'Computer Science'
6+
- 'Data Science'
7+
Tags:
8+
- 'Files'
9+
- 'Python'
10+
CatalogContent:
11+
- 'learn-python-3'
12+
- 'paths/computer-science'
13+
---
14+
15+
The **`with`** keyword in Python is used to wrap the execution of a block of code within methods defined by a context manager. It simplifies resource management — automatically handling setup and teardown operations like opening and closing files, acquiring and releasing locks, or connecting and disconnecting from databases.
16+
17+
When a block under `with` is executed:
18+
19+
1. The context manager’s `__enter__()` method is called.
20+
2. The block of code inside the `with` statement runs.
21+
3. The context manager’s `__exit__()` method is automatically called after the block finishes — even if an error occurs.
22+
23+
## Syntax
24+
25+
```pseudo
26+
with expression [as variable]:
27+
# Code block
28+
```
29+
30+
**Parameters:**
31+
32+
- `expression`: A context manager that defines `__enter__()` and `__exit__()` methods.
33+
- `variable` (optional): The object returned by the `__enter__()` method, which can be used inside the code block.
34+
35+
**Return value:**
36+
37+
Returns the object provided by the context manager’s `__enter__()` method, if assigned using `as`.
38+
39+
## Example 1: Managing File Resources
40+
41+
In this example, a file is opened, written to, and automatically closed after the block finishes:
42+
43+
```py
44+
with open("example.txt", "w") as file:
45+
file.write("Hello, World!")
46+
```
47+
48+
The output of this code is:
49+
50+
```shell
51+
# (No visible output)
52+
# The file 'example.txt' is written and automatically closed.
53+
```
54+
55+
Here the file is automatically opened and closed using `with`. Even if an error occurs while writing, `file.close()` is called automatically.
56+
57+
## Example 2: Using Multiple Context Managers
58+
59+
In this example, two files are managed simultaneously, ensuring both are safely opened and closed:
60+
61+
```py
62+
with open("input.txt", "r") as infile, open("output.txt", "w") as outfile:
63+
data = infile.read()
64+
outfile.write(data)
65+
```
66+
67+
In this example, both files are safely managed, opened at the start, and closed automatically when the block ends.
68+
69+
## Example 3: File Handling with `with`
70+
71+
In this example, data is written to a file and then read back using separate `with` blocks for writing and reading:
72+
73+
```py
74+
# Writing to a file using 'with'
75+
with open("demo.txt", "w") as file:
76+
file.write("Learning Python 'with' keyword!")
77+
78+
# Reading the same file
79+
with open("demo.txt", "r") as file:
80+
content = file.read()
81+
print(content)
82+
```
83+
84+
The expected output is:
85+
86+
```shell
87+
Learning Python 'with' keyword!
88+
```

0 commit comments

Comments
 (0)