Python Write Text File
Summary: in this tutorial, you’ll learn various ways to write text files in Python.
TL;DR
The following illustrates how to write a string to a text file:
with open('readme.txt', 'w') as f: f.write('readme')
Code language: JavaScript (javascript)
Steps for writing to text files
To write to a text file in Python, you follow these steps:
- First, open the text file for writing (or append) using the open() function.
- Second, write to the text file using the write() or writelines() method.
- Third, close the file using the close() method.
The following shows the basic syntax of the open() function:
The open() function accepts many parameters. But you’ll focus on the first two:
- The file parameter specifies the path to the text file that you want to open for writing.
- The mode parameter specifies the mode for which you want to open the text file.
For writing to a text file, you use one of the following modes:
Mode | Description |
---|---|
‘w’ | Open a text file for writing. If the file exists, the function will truncate all the contents as soon as you open it. If the file doesn’t exist, the function creates a new file. |
‘a’ | Open a text file for appending text. If the file exists, the function append contents at the end of the file. |
‘+’ | Open a text file for updating (both reading & writing). |
The open() function returns a file object that has two useful methods for writing text to the file: write() and writelines() .
- The write() method writes a string to a text file.
- The writelines() method write a list of strings to a file at once.
The writelines() method accepts an iterable object, not just a list, so you can pass a tuple of strings, a set of strings, etc., to the writelines() method.
To write a line to a text file, you need to manually add a new line character:
f.write('\n') f.writelines('\n')
Code language: JavaScript (javascript)
Writing text file examples
The following example shows how to use the write() function to write a list of texts to a text file:
lines = ['Readme', 'How to write text files in Python'] with open('readme.txt', 'w') as f: for line in lines: f.write(line) f.write('\n')
Code language: JavaScript (javascript)
If the readme.txt file doesn’t exist, the open() function will create a new file.
The following shows how to write a list of text strings to a text file:
lines = ['Readme', 'How to write text files in Python'] with open('readme.txt', 'w') as f: f.writelines(lines)
Code language: JavaScript (javascript)
If you treat each element of the list as a line, you need to concatenate it with the newline character like this:
lines = ['Readme', 'How to write text files in Python'] with open('readme.txt', 'w') as f: f.write('\n'.join(lines))
Code language: JavaScript (javascript)
Appending text files
To append to a text file, you need to open the text file for appending mode. The following example appends new lines to the readme.txt file:
more_lines = ['', 'Append text files', 'The End'] with open('readme.txt', 'a') as f: f.write('\n'.join(more_lines))
Code language: JavaScript (javascript)
Writing to a UTF-8 text file
If you write UTF-8 characters to a text file using the code from the previous examples, you’ll get an error like this:
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-44: character maps to undefined>
Code language: HTML, XML (xml)
To open a file and write UTF-8 characters to a file, you need to pass the encoding=’utf-8′ parameter to the open() function.
The following example shows how to write UTF-8 characters to a text file:
quote = '成功を収める人とは人が投げてきたレンガでしっかりした基盤を築くことができる人のことである。' with open('quotes.txt', 'w', encoding='utf-8') as f: f.write(quote)
Code language: JavaScript (javascript)
Summary
- Use the open() function with the w or a mode to open a text file for appending.
- Always close the file after completing writing using the close() method or use the with statement when opening the file.
- Use write() and writelines() methods to write to a text file.
- Pass the encoding=’utf-8′ to the open() function to write UTF-8 characters into a file.
The Python Tutorial¶
Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python’s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.
The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python web site, https://www.python.org/, and may be freely distributed. The same site also contains distributions of and pointers to many free third party Python modules, programs and tools, and additional documentation.
The Python interpreter is easily extended with new functions and data types implemented in C or C++ (or other languages callable from C). Python is also suitable as an extension language for customizable applications.
This tutorial introduces the reader informally to the basic concepts and features of the Python language and system. It helps to have a Python interpreter handy for hands-on experience, but all examples are self-contained, so the tutorial can be read off-line as well.
For a description of standard objects and modules, see The Python Standard Library . The Python Language Reference gives a more formal definition of the language. To write extensions in C or C++, read Extending and Embedding the Python Interpreter and Python/C API Reference Manual . There are also several books covering Python in depth.
This tutorial does not attempt to be comprehensive and cover every single feature, or even every commonly used feature. Instead, it introduces many of Python’s most noteworthy features, and will give you a good idea of the language’s flavor and style. After reading it, you will be able to read and write Python modules and programs, and you will be ready to learn more about the various Python library modules described in The Python Standard Library .
The Glossary is also worth going through.
- 1. Whetting Your Appetite
- 2. Using the Python Interpreter
- 2.1. Invoking the Interpreter
- 2.1.1. Argument Passing
- 2.1.2. Interactive Mode
- 2.2.1. Source Code Encoding
- 3.1. Using Python as a Calculator
- 3.1.1. Numbers
- 3.1.2. Strings
- 3.1.3. Lists
- 4.1. if Statements
- 4.2. for Statements
- 4.3. The range() Function
- 4.4. break and continue Statements, and else Clauses on Loops
- 4.5. pass Statements
- 4.6. match Statements
- 4.7. Defining Functions
- 4.8. More on Defining Functions
- 4.8.1. Default Argument Values
- 4.8.2. Keyword Arguments
- 4.8.3. Special parameters
- 4.8.3.1. Positional-or-Keyword Arguments
- 4.8.3.2. Positional-Only Parameters
- 4.8.3.3. Keyword-Only Arguments
- 4.8.3.4. Function Examples
- 4.8.3.5. Recap
- 5.1. More on Lists
- 5.1.1. Using Lists as Stacks
- 5.1.2. Using Lists as Queues
- 5.1.3. List Comprehensions
- 5.1.4. Nested List Comprehensions
- 6.1. More on Modules
- 6.1.1. Executing modules as scripts
- 6.1.2. The Module Search Path
- 6.1.3. “Compiled” Python files
- 6.4.1. Importing * From a Package
- 6.4.2. Intra-package References
- 6.4.3. Packages in Multiple Directories
- 7.1. Fancier Output Formatting
- 7.1.1. Formatted String Literals
- 7.1.2. The String format() Method
- 7.1.3. Manual String Formatting
- 7.1.4. Old string formatting
- 7.2.1. Methods of File Objects
- 7.2.2. Saving structured data with json
- 8.1. Syntax Errors
- 8.2. Exceptions
- 8.3. Handling Exceptions
- 8.4. Raising Exceptions
- 8.5. Exception Chaining
- 8.6. User-defined Exceptions
- 8.7. Defining Clean-up Actions
- 8.8. Predefined Clean-up Actions
- 8.9. Raising and Handling Multiple Unrelated Exceptions
- 8.10. Enriching Exceptions with Notes
- 9.1. A Word About Names and Objects
- 9.2. Python Scopes and Namespaces
- 9.2.1. Scopes and Namespaces Example
- 9.3.1. Class Definition Syntax
- 9.3.2. Class Objects
- 9.3.3. Instance Objects
- 9.3.4. Method Objects
- 9.3.5. Class and Instance Variables
- 9.5.1. Multiple Inheritance
- 10.1. Operating System Interface
- 10.2. File Wildcards
- 10.3. Command Line Arguments
- 10.4. Error Output Redirection and Program Termination
- 10.5. String Pattern Matching
- 10.6. Mathematics
- 10.7. Internet Access
- 10.8. Dates and Times
- 10.9. Data Compression
- 10.10. Performance Measurement
- 10.11. Quality Control
- 10.12. Batteries Included
- 11.1. Output Formatting
- 11.2. Templating
- 11.3. Working with Binary Data Record Layouts
- 11.4. Multi-threading
- 11.5. Logging
- 11.6. Weak References
- 11.7. Tools for Working with Lists
- 11.8. Decimal Floating Point Arithmetic
- 12.1. Introduction
- 12.2. Creating Virtual Environments
- 12.3. Managing Packages with pip
- 14.1. Tab Completion and History Editing
- 14.2. Alternatives to the Interactive Interpreter
- 15.1. Representation Error
- 16.1. Interactive Mode
- 16.1.1. Error Handling
- 16.1.2. Executable Python Scripts
- 16.1.3. The Interactive Startup File
- 16.1.4. The Customization Modules
- 2.1. Invoking the Interpreter