Welcome to this tutorial on Python 3's asynchronous programming with async and await. This guide will help you understand the basics and practical usage of asynchronous programming in Python 3.

What is Async&Await?

Asyncio is a Python library to write concurrent code using the async/await syntax. It is used to write single-threaded concurrent code using coroutines, multiplexing I/O access over sockets and other resources, launching lightweight threads (greenlets), and other related features.

Key Concepts

  • Coroutines: A coroutine is a function that can be paused and resumed, allowing other code to run in the meantime.
  • Await: The await keyword is used to pause the execution of the coroutine until the awaited object is completed.

Basic Example

Here's a simple example of using async and await:

import asyncio

async def main():
    print('Hello')
    await asyncio.sleep(1)
    print('World!')

# Python 3.7+
asyncio.run(main())

Practical Usage

Asynchronous programming is particularly useful when dealing with I/O-bound and high-level structured network code. For example, when you're working with web requests or file I/O, using asyncio can greatly improve performance.

Web Requests

Here's an example of making a web request asynchronously:

import aiohttp
import asyncio

async def fetch(session, url):
    async with session.get(url) as response:
        return await response.text()

async def main():
    async with aiohttp.ClientSession() as session:
        html = await fetch(session, 'https://www.example.com')
        print(html)

# Python 3.7+
asyncio.run(main())

File I/O

You can also use asyncio to perform file I/O operations asynchronously:

import asyncio

async def read_file(file_path):
    async with aiofiles.open(file_path, mode='r') as file:
        return await file.read()

# Python 3.7+
async def main():
    content = await read_file('example.txt')
    print(content)

asyncio.run(main())

Further Reading

For more information on Python 3 async and await, check out the official asyncio documentation.

Return to the Python Tutorials page.


Python 3 Async&Await