We use file system interaction to save, read, and manage data on your computer. It helps programs remember information even after they stop running.
File system interaction basics in Python
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
Python
open('filename', 'mode') # Modes: # 'r' - read # 'w' - write (overwrite) # 'a' - append (add to end) # 'x' - create new file # 'b' - binary mode # 't' - text mode (default)
Always close the file after using it, or use with to handle it automatically.
File modes control how you interact with the file (read, write, append).
Examples
Python
with open('notes.txt', 'r') as file: content = file.read()
Python
with open('log.txt', 'a') as file: file.write('New entry\n')
Python
file = open('data.txt', 'w') file.write('Hello world!') file.close()
Sample Program
This program creates a file called 'example.txt', writes two lines of text, then reads and prints the content.
Python
filename = 'example.txt' # Write some text to the file with open(filename, 'w') as file: file.write('Hello, file system!\n') file.write('This is a test file.') # Read the text back from the file with open(filename, 'r') as file: content = file.read() print('File content:') print(content)
Important Notes
Using with open(...) is safer because it closes the file automatically.
Writing with mode 'w' erases the old content, so be careful.
Reading a file that does not exist will cause an error.
Summary
Files let your program save and load information on your computer.
Use open() with modes like 'r', 'w', and 'a' to read, write, or add to files.
Always close files or use with to avoid problems.
Practice
1. What does the mode 'r' mean when opening a file with
open() in Python?easy
Solution
Step 1: Understand file modes in Python
The mode 'r' stands for reading the file only, meaning you can read data but not change it.Step 2: Compare with other modes
Modes like 'w' are for writing (which overwrites), and 'a' is for appending. 'r' does not allow writing.Final Answer:
Open the file for reading only -> Option AQuick Check:
Mode 'r' = read only [OK]
Hint: Remember 'r' means read, 'w' means write, 'a' means append [OK]
Common Mistakes:
- Confusing 'r' with 'w' or 'a'
- Thinking 'r' creates a new file
- Trying to write to a file opened with 'r'
2. Which of the following is the correct syntax to open a file named 'data.txt' for writing in Python?
easy
Solution
Step 1: Identify the mode for writing
The mode 'w' opens a file for writing and creates it if it doesn't exist or overwrites if it does.Step 2: Check syntax correctness
open('data.txt', 'w') is the correct syntax. 'r' is for reading, 'rw' is invalid, 'a+' is for appending and reading.Final Answer:
open('data.txt', 'w') -> Option BQuick Check:
Write mode = 'w' [OK]
Hint: Use 'w' to write or overwrite files [OK]
Common Mistakes:
- Using 'r' when intending to write
- Using invalid mode 'rw'
- Confusing 'a+' with 'w'
3. What will be the output of this code?
with open('test.txt', 'w') as f:
f.write('Hello')
with open('test.txt', 'a') as f:
f.write(' World')
with open('test.txt', 'r') as f:
print(f.read())medium
Solution
Step 1: Write 'Hello' to the file
The first block opens 'test.txt' in write mode, which creates or clears the file, then writes 'Hello'.Step 2: Append ' World' to the file
The second block opens the file in append mode and adds ' World' after 'Hello'.Step 3: Read and print the file content
The last block reads the full content, which is 'Hello World', and prints it.Final Answer:
Hello World -> Option CQuick Check:
Write + append = 'Hello World' [OK]
Hint: Write clears file, append adds to end [OK]
Common Mistakes:
- Expecting append to overwrite
- Not closing files before reading
- Confusing write and append modes
4. What is wrong with this code snippet?
f = open('log.txt', 'r')
print(f.read())
f.write('New entry')
f.close()medium
Solution
Step 1: Check file mode and operations
The file is opened with mode 'r' which allows reading only.Step 2: Identify invalid operation
Calling f.write() on a file opened in read mode causes an error because writing is not allowed.Final Answer:
File is opened in read mode but write is attempted -> Option AQuick Check:
Write not allowed in 'r' mode [OK]
Hint: Don't write to files opened with 'r' mode [OK]
Common Mistakes:
- Trying to write without 'w' or 'a' mode
- Forgetting to close files
- Assuming 'r' mode allows writing
5. You want to read a file line by line and print only lines that contain the word 'error'. Which is the best way to do this in Python?
hard
Solution
Step 1: Use 'with' and read line by line
with open('log.txt', 'r') as f: for line in f: if 'error' in line: print(line.strip()) uses 'with' to open the file safely and iterates line by line, which is memory efficient.Step 2: Check condition and print matching lines
It checks if 'error' is in each line and prints the line without extra spaces using strip().Final Answer:
with open('log.txt', 'r') as f: for line in f: if 'error' in line: print(line.strip()) -> Option DQuick Check:
Use 'with' + for line in file + condition [OK]
Hint: Use 'with' and loop lines to filter content [OK]
Common Mistakes:
- Opening file in 'w' mode when reading
- Comparing whole line to 'error' instead of substring
- Not closing file properly
- Using split incorrectly for line filtering
