Javatpoint Logo
Javatpoint Logo

Anytree Python


Using tree data structures is made easy with the help of the Python package anytree. It makes it simple to build, navigate, work with, and visualise tree structures in Python scripts.

The library provides a flexible and extensible API that allows you to work with different types of tree data structures, including binary trees, n-ary trees, and more complex hierarchical structures.

We'll examine the foundations of anytree and some of its most useful features in this article.

Installing anytree:

You can install anytree using pip, the Python package installer:

Creating a Tree

To create a tree in anytree, you start by defining nodes. Nodes are the basic building blocks of a tree, and they represent the elements that make up the tree structure.

Here's an Example of How to Create a Simple Tree with Three Nodes:

In this example, we create a root node called "root", and then add two child nodes to it, "child1" and "child2". Each child node's parent node is specified using the parent argument.

Traversing a Tree:

Anytree offers a variety of ways to move through a tree(traversing). The most common way is to use the walk function, which visits each node in the tree in the pre-order traversal. Pre-order traversal repeatedly visits all of the children of the root node after visiting the root node.

Here's an Example of How to Traverse the Tree We Created Earlier Using the Walk Function:

In this example, we use the descendants property of the root node to get a list of all nodes in the tree, and then loop through them and print their names. The RenderTree class can be used to render the tree structure visually.

Manipulating a tree

anytree provides several methods for manipulating a tree structure. You can, for instance, add or remove nodes, reorder them in the tree, or alter their values.

Here's an Example of How to Add a New Node to the Tree we Created Earlier:

In this example, we create a new node called "new_node" and add it as a child of "child1".

Serializing a tree

anytree provides several methods for serializing a tree structure to different formats, such as JSON or XML. This can be useful for storing a tree structure in a file or sending it over a network.

Here's an Example of How to Serialize a Tree to JSON Format:


In this example, we use the JsonExporter class to create a JSON representation of the tree, and then print it to the console.

Note: Anytree also provides a convenient way to access nodes in the tree using paths. You can get the path to a node by calling the PathMixin.path attribute on the node:


In this article, we've introduced anytree, a Python library that provides a simple and powerful way to work with tree data structures. We've covered the basics of creating a tree, traversing a tree, manipulating a tree, and serializing a tree. With these features, anytree makes it easy to work with tree structures in your Python programs.

Anytree offers a straightforward API for building and modifying trees. You can start by making a root node and then add child nodes to it to construct a tree. The tree's nodes each have a name, a parent, and a variable number of children.

Anytree is a robust and adaptable Python toolkit for working with tree data structures overall. It is a fantastic option for a variety of applications thanks to its straightforward API and extensive feature set.

Next TopicPython Expanduser

Youtube For Videos Join Our Youtube Channel: Join Now


Help Others, Please Share

facebook twitter pinterest

Learn Latest Tutorials


Trending Technologies

B.Tech / MCA