Text files are one of the most fundamental components in computing. From storing configuration data to logging events or saving user input, text files are everywhere. In Python, working with text files is simple and powerful thanks to the built-in file handling capabilities.
Python provides functions that allow developers to open, read, write, and manipulate text files in various ways. This document covers everything you need to know about working with text files in Pythonβranging from basic reading and writing to advanced file manipulation techniques.
A text file is a file that contains human-readable characters and can be opened using a text editor like Notepad, Sublime Text, or Visual Studio Code. Text files typically have extensions like .txt, .csv, .log, or .html. These files store plain text, and unlike binary files, they do not contain formatting, images, or compiled code.
The open() function is used to open files in Python. It returns a file object that can be used to read from or write to the file.
file = open("example.txt", "r")
The two main parameters are:
The read() method reads the entire content of a file as a single string.
with open("example.txt", "r") as file:
content = file.read()
print(content)
Reads a single line from the file. Useful when processing large files line by line.
with open("example.txt", "r") as file:
line1 = file.readline()
print(line1)
Returns a list containing all lines in the file.
with open("example.txt", "r") as file:
lines = file.readlines()
for line in lines:
print(line.strip())
The write() method writes a string to the file. If the file does not exist, it will be created. In write mode, existing content is erased.
with open("example.txt", "w") as file:
file.write("Hello, world!")
The writelines() method writes a list of strings to the file.
lines = ["First line\n", "Second line\n", "Third line\n"]
with open("example.txt", "w") as file:
file.writelines(lines)
Appending data means adding new data at the end of the file without altering the existing content.
with open("example.txt", "a") as file:
file.write("This is an appended line.\n")
You can use modes like r+, w+, and a+ to read and write simultaneously.
with open("example.txt", "r+") as file:
file.write("Start of the file\n")
file.seek(0)
print(file.read())
- Absolute path: full path to the file (e.g., /home/user/docs/file.txt)
- Relative path: relative to the scriptβs location (e.g., docs/file.txt)
import os
current_dir = os.getcwd()
file_path = os.path.join(current_dir, "example.txt")
from pathlib import Path
file_path = Path("example.txt")
print(file_path.resolve())
Using the with statement is the safest and most efficient way to work with files in Python. It ensures the file is properly closed after its suite finishes.
with open("example.txt", "r") as file:
data = file.read()
When dealing with large text files, reading the entire file at once can be memory-intensive. It is better to process the file line by line using a loop.
with open("largefile.txt", "r") as file:
for line in file:
print(line.strip())
To modify a fileβs contents, you generally:
with open("example.txt", "r") as file:
lines = file.readlines()
lines[0] = "Modified first line\n"
with open("example.txt", "w") as file:
file.writelines(lines)
try:
with open("nonexistent.txt", "r") as file:
data = file.read()
except FileNotFoundError:
print("The file was not found.")
except IOError:
print("An I/O error occurred.")
CSV (Comma Separated Values) files are plain text files often used for storing tabular data.
import csv
# Reading CSV
with open("data.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)
# Writing CSV
with open("output.csv", "w", newline='') as file:
writer = csv.writer(file)
writer.writerow(["Name", "Age"])
writer.writerow(["Alice", "30"])
JSON files are also text files that store data in key-value pairs.
import json
# Writing JSON
data = {"name": "John", "age": 25}
with open("data.json", "w") as file:
json.dump(data, file)
# Reading JSON
with open("data.json", "r") as file:
content = json.load(file)
print(content)
with open("example.txt", "r") as file:
lines = file.readlines()
print(f"Lines: {len(lines)}")
words = sum(len(line.split()) for line in lines)
print(f"Words: {words}")
with open("example.txt", "r") as file:
content = file.read()
content = content.replace("old", "new")
with open("example.txt", "w") as file:
file.write(content)
with open("example.txt", "r") as file:
lines = file.readlines()
non_blank = [line for line in lines if line.strip() != ""]
with open("example.txt", "w") as file:
file.writelines(non_blank)
Text files can be encoded in formats like UTF-8, ASCII, etc. It is often a good practice to specify encoding explicitly.
with open("example.txt", "r", encoding="utf-8") as file:
print(file.read())
Working with text files in Python is a fundamental skill that opens the door to a wide range of applications, from data logging to configuration handling and file-based databases. Python's simple and intuitive syntax makes file manipulation both easy and powerful. Whether you're just reading a file line by line or performing complex updates and transformations, Python provides all the tools necessary to interact with text files safely and effectively.
Understanding how to open, read, write, append, and modify text files, as well as how to handle exceptions and work with encoding, will prepare you to manage text-based data in real-world projects. Practicing these operations and exploring additional modules like csv and json will further strengthen your proficiency in Python file handling.
Python is commonly used for developing websites and software, task automation, data analysis, and data visualisation. Since it's relatively easy to learn, Python has been adopted by many non-programmers, such as accountants and scientists, for a variety of everyday tasks, like organising finances.
Learning Curve: Python is generally considered easier to learn for beginners due to its simplicity, while Java is more complex but provides a deeper understanding of how programming works.
The point is that Java is more complicated to learn than Python. It doesn't matter the order. You will have to do some things in Java that you don't in Python. The general programming skills you learn from using either language will transfer to another.
Read on for tips on how to maximize your learning. In general, it takes around two to six months to learn the fundamentals of Python. But you can learn enough to write your first short program in a matter of minutes. Developing mastery of Python's vast array of libraries can take months or years.
6 Top Tips for Learning Python
The following is a step-by-step guide for beginners interested in learning Python using Windows.
Best YouTube Channels to Learn Python
Write your first Python programStart by writing a simple Python program, such as a classic "Hello, World!" script. This process will help you understand the syntax and structure of Python code.
The average salary for Python Developer is βΉ5,55,000 per year in the India. The average additional cash compensation for a Python Developer is within a range from βΉ3,000 - βΉ1,20,000.
Copyrights © 2024 letsupdateskills All rights reserved