<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://script.spoken-tutorial.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://script.spoken-tutorial.org/index.php?action=history&amp;feed=atom&amp;title=Python-for-Automation%2FC2%2FFile-Management%2FEnglish</id>
		<title>Python-for-Automation/C2/File-Management/English - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://script.spoken-tutorial.org/index.php?action=history&amp;feed=atom&amp;title=Python-for-Automation%2FC2%2FFile-Management%2FEnglish"/>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Management/English&amp;action=history"/>
		<updated>2026-05-13T10:45:48Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.17</generator>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Management/English&amp;diff=56661&amp;oldid=prev</id>
		<title>Madhurig at 06:28, 26 August 2024</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Management/English&amp;diff=56661&amp;oldid=prev"/>
				<updated>2024-08-26T06:28:59Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 06:28, 26 August 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Title of the script: File Management &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Title of the script: File Management &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Author: Dhaarani Pushpam S&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Author: Dhaarani Pushpam S&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Keywords: python file management, directory handling, error handling, shutil library, os library, video tutorial, spoken tutorial.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Keywords: python file management, directory handling, error handling, shutil library, os library, video tutorial, spoken tutorial.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Madhurig</name></author>	</entry>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Management/English&amp;diff=56660&amp;oldid=prev</id>
		<title>Madhurig at 06:27, 26 August 2024</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Management/English&amp;diff=56660&amp;oldid=prev"/>
				<updated>2024-08-26T06:27:40Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Management/English&amp;amp;diff=56660&amp;amp;oldid=56659&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Madhurig</name></author>	</entry>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Management/English&amp;diff=56659&amp;oldid=prev</id>
		<title>Nirmala Venkat: Created page with &quot;  &lt;div style=&quot;margin-left:1.27cm;margin-right:0cm;&quot;&gt;&lt;/div&gt; {| border=&quot;1&quot; |- || '''Visual Cue''' || '''Narration''' |- |- style=&quot;border:1pt solid #000000;padding-top:0cm;paddin...&quot;</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Management/English&amp;diff=56659&amp;oldid=prev"/>
				<updated>2024-08-22T12:31:07Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;  &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; {| border=&amp;quot;1&amp;quot; |- || &amp;#039;&amp;#039;&amp;#039;Visual Cue&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;Narration&amp;#039;&amp;#039;&amp;#039; |- |- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;paddin...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|| '''Visual Cue'''&lt;br /&gt;
|| '''Narration'''&lt;br /&gt;
|-&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide: &lt;br /&gt;
&lt;br /&gt;
'''Welcome'''&lt;br /&gt;
|| Welcome to the Spoken Tutorial on '''&amp;quot; File Management &amp;quot;.'''&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide: &lt;br /&gt;
&lt;br /&gt;
'''Learning Objectives'''&lt;br /&gt;
|| In this tutorial, we will learn &lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;How to manage files using '''Python.'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;List the type of files in a directory.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Error and exception handling.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide: &lt;br /&gt;
&lt;br /&gt;
'''System Requirements'''* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Ubuntu''' '''Linux OS 22.04'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Python 3.12.3'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|| To record this tutorial, I am using&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Ubuntu Linux os version 22.04'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Python version 3.12.3'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide: &lt;br /&gt;
&lt;br /&gt;
'''Prerequisite'''&lt;br /&gt;
[https://www.spoken-tutorial.org/ https://spoken-tutorial.org]&lt;br /&gt;
|| To follow this tutorial &lt;br /&gt;
&lt;br /&gt;
* You must have basic knowledge of using '''Linux Terminal '''and''' Python.'''&lt;br /&gt;
* For pre-requisite '''Linux''' and '''Python '''Tutorials, please visit this website.&lt;br /&gt;
* Python libraries required for automation must be installed&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide:&lt;br /&gt;
&lt;br /&gt;
'''Code files'''&lt;br /&gt;
||&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;The files used in this tutorial are provided in the '''Code files''' link.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Please download and extract the files.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Make a copy and then use them while practicing.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide: &lt;br /&gt;
&lt;br /&gt;
'''File Management'''&lt;br /&gt;
|| File management in automation is crucial:&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;For seamless organization of files.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;To ensure efficient storage and retrieval.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;To facilitate smooth automated workflows.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide: '''File Management - Libraries '''&lt;br /&gt;
|| To automate file management, we need the below libraries:&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''shutil:''' It offers high-level operations on files and collections of files.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''os:''' It provides functions for interacting with the operating system.&amp;lt;/div&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Show screenshot:(slides folder)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Sample_files.png'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;In this tutorial, we will learn how to organize files based on extension.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;As you can see, this folder is disorganized with various files. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;It is quite hard to search a file if your folder is unorganized.&amp;lt;/div&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Show screenshot:&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Organized_files.png'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;By using file automation, we can neatly organize files as shown here.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;The files are sorted into folders by their extensions.&amp;lt;/div&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Only narration:&lt;br /&gt;
|| Let us see how this automation is done using python.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show '''Sample''' folder.&lt;br /&gt;
|| For this download the '''sample.zip''' file from the '''code files'''.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Extract the zip file.&lt;br /&gt;
|| Extract the files from the zip folder before using it.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Open '''Sample '''folder.&lt;br /&gt;
|| The '''Sample '''folder contains various files and also a sub folder named '''Miscellaneous.'''&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Open '''More files''' folder.&lt;br /&gt;
|| Inside the '''Miscellaneous''' folder, there are few more files.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Point to the '''File Management.py '''in downloads folder&lt;br /&gt;
|| I have created a source code '''File Management.py '''for an automation demonstration.&lt;br /&gt;
&lt;br /&gt;
Let us open the file in the text editor.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''import os'''&lt;br /&gt;
&lt;br /&gt;
'''import shutil'''&lt;br /&gt;
|| First we import the '''os '''and '''shutil '''modules required for file management.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight: &lt;br /&gt;
&lt;br /&gt;
'''def print_unique_extensions(directory):'''&lt;br /&gt;
|| Next, we define a function''' print_unique_extensions.'''&lt;br /&gt;
&lt;br /&gt;
This''' '''function prints all unique file extensions in a given directory.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:''' if not os.path.exists(directory):'''&lt;br /&gt;
&lt;br /&gt;
'''print(f&amp;quot;Error: Directory '{directory}' not found.&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
'''return'''&lt;br /&gt;
&lt;br /&gt;
|| we check if the given directory exists.If not, we print the directory not found and exit the function.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''try:'''&lt;br /&gt;
|| We then use a '''try '''block to catch potential errors.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''extensions = set()'''&lt;br /&gt;
|| Inside the block we create an empty set to store unique extensions.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''for root, _, files in os.walk(directory):'''&lt;br /&gt;
|| Next we use a '''for''' loop to iterate through the directory.&lt;br /&gt;
&lt;br /&gt;
Here,&lt;br /&gt;
&lt;br /&gt;
The '''root '''is the current directory path.&lt;br /&gt;
&lt;br /&gt;
The '''underscore''' represents the list of directories. &lt;br /&gt;
&lt;br /&gt;
Since it is not used in the '''os.walk''' function, let us keep it as '''_.'''&lt;br /&gt;
&lt;br /&gt;
The '''os.walk '''function generates file names in a directory tree.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''for file in files:'''&lt;br /&gt;
|| Then we use a '''nested''' '''for '''loop to iterate through each file.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''extensions.add(os.path.splitext(file)[1])'''&lt;br /&gt;
&lt;br /&gt;
'''print(&amp;quot;Unique file extensions:&amp;quot;, extensions)'''&lt;br /&gt;
|| Inside the loop the '''os.path.splitext '''function gets the extension from each file.&lt;br /&gt;
&lt;br /&gt;
We use the '''extension.add '''function to add the extension to the set.&lt;br /&gt;
&lt;br /&gt;
Then we print all the extensions.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''except Exception as e:'''&lt;br /&gt;
&lt;br /&gt;
'''print(f&amp;quot;Error listing files: {e}&amp;quot;)'''&lt;br /&gt;
|| If an error occurs, the '''except '''block will catch the exception and print a message.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''def organize_files_by_extension(directory):'''&lt;br /&gt;
|| Now we define a function named '''organize_files_by_extension.'''&lt;br /&gt;
&lt;br /&gt;
This''' '''function organizes files by their extensions within the parent directories.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''try: for root, _, files in os.walk(directory):'''&lt;br /&gt;
|| Within a''' try''' block, We run a '''for''' loop to iterate the directory.&lt;br /&gt;
&lt;br /&gt;
The '''os.walk''' is used to traverse the directory tree.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:'''extension_dirs = {}'''&lt;br /&gt;
|| We then initialize a dictionary to store directories for each extension.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''for file in files:'''&lt;br /&gt;
&lt;br /&gt;
'''file_path = os.path.join(root, file)'''&lt;br /&gt;
|| We then use a '''nested''' '''for '''loop to iterate through each file.&lt;br /&gt;
&lt;br /&gt;
Then using '''os.path.join '''we construct the full file path.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:'''if os.path.isfile(os.path.join(directory, file)):'''&lt;br /&gt;
|| Now we use an '''if '''condition to check if it's actually a file.&lt;br /&gt;
&lt;br /&gt;
To do this we use the function '''os.path.isfile.'''&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight: '''_, extension = os.path.splitext(file)'''&lt;br /&gt;
|| Using '''os.path.splitext '''we split the base name and the extension.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''if extension:'''&lt;br /&gt;
|| We then use a '''nested if '''to check if the file has an extension.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''target_dir = os.path.join(directory, extension[1:])'''&lt;br /&gt;
|| Next we create a directory name based on the extension using '''os.path.join''' function'''.'''&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight: &lt;br /&gt;
&lt;br /&gt;
'''if target_dir not in extension_dirs: os.makedirs(target_dir, exist_ok=True) '''&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
By using a '''nested''' '''if '''we check if the target directory already exists.&lt;br /&gt;
&lt;br /&gt;
If not, we create it using the '''os.makedirs '''function'''.'''&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight: '''shutil.move(os.path.join(directory, file), os.path.join(target_dir, file))'''&lt;br /&gt;
|| We then move the file to the target directory using '''shutil.move.'''&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''except Exception as e:'''&lt;br /&gt;
&lt;br /&gt;
'''print(f&amp;quot;Error organizing files: {e}&amp;quot;)'''&lt;br /&gt;
|| If an error occurs, the '''except '''block will catch the exception and print a message.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''directory_path = input(&amp;quot;Enter the directory path to organize: &amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
|| Finally, we get the location of the directory from the user.&lt;br /&gt;
&lt;br /&gt;
The '''directory_path '''holds the path to the directory you want to organize.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight: '''print_unique_extensions(directory_path)'''&lt;br /&gt;
&lt;br /&gt;
'''organize_files_by_extension(directory_path)'''&lt;br /&gt;
|| We then call the two functions '''print_unique_extensions''' and '''organize_files_by_extension'''.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Only narration&lt;br /&gt;
|| Now let us execute the code.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Only narration&lt;br /&gt;
|| Save the code as '''File Management.py '''in the '''Downloads '''folder.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Open terminal'''(Ctrl + Alt + T)'''&lt;br /&gt;
|| Open the '''terminal''' by pressing '''Control + Alt + T '''keys simultaneously.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| '''&amp;gt;'''Type '''source Automation/bin/activate'''&lt;br /&gt;
&lt;br /&gt;
Then press enter.&lt;br /&gt;
|| We’ll open the virtual environment for the '''Automation''' series.Type '''source space Automation forward slash bin forward slash activate.'''&lt;br /&gt;
&lt;br /&gt;
Then press enter.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| '''&amp;gt;'''Type &amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''cd Downloads'''&amp;lt;/span&amp;gt;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;Now type, &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''cd Downloads'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;Press &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''Enter.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| '''&amp;gt;'''Type &amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''python3 File_Management.py'''&amp;lt;/span&amp;gt;&lt;br /&gt;
|| Let us run the code.&lt;br /&gt;
&lt;br /&gt;
Type '''python3 space File underscore Management dot py '''&lt;br /&gt;
&lt;br /&gt;
Press '''Enter.'''&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:'''Enter the directory path to organize: '''&lt;br /&gt;
&lt;br /&gt;
&amp;gt;Type''' /home/dhaarani/Downloads/Sample'''&lt;br /&gt;
|| Here I want to organize the '''sample''' folder in my '''Downloads'''.&lt;br /&gt;
Type the location of your folder as shown here.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight the output:&lt;br /&gt;
&lt;br /&gt;
'''Unique file extensions: {'.mov', '.txt', '.pdf', '.mp4', '.doc', '.csv', '.ppt', '.png', '.webm', '.mp3', '.Identifier'}'''&lt;br /&gt;
|| We can see that the unique extensions in the '''sample folder''' are listed here.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight :&lt;br /&gt;
&lt;br /&gt;
'''The Files are organized Successfully.'''&lt;br /&gt;
|| Also we can see a message saying the files are organized successfully.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Open the''' Sample folder'''&lt;br /&gt;
|| Let us open the '''Sample '''folder again.We can see that files are organized in directories based on their extensions.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Open the '''Miscellaneous folder'''&lt;br /&gt;
|| Let us open the '''Miscellaneous folder '''too.&lt;br /&gt;
&lt;br /&gt;
The files inside the sub folder are also now organized.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Only narration:&lt;br /&gt;
|| Let us now see the error handling while executing the code.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| '''&amp;gt;'''Type &amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''python3 File_Manag ement.py'''&amp;lt;/span&amp;gt;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#ff0000;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the terminal, type '''python3 space File underscore Management dot py '''&lt;br /&gt;
&lt;br /&gt;
Press '''Enter.'''&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:'''Enter the directory path to organize: '''&lt;br /&gt;
&lt;br /&gt;
&amp;gt;Type''' test'''&lt;br /&gt;
|| Type '''test '''The directory''' test '''does not exist in my system.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Highlight:'''Error: Directory 'test' not found.'''&lt;br /&gt;
|| We can see that the output shows an error as the directory is not found.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Only narration&lt;br /&gt;
&lt;br /&gt;
|| Similarly if the folder location does not have any files we get an error message.&lt;br /&gt;
&lt;br /&gt;
The '''try - except '''block in the source code will catch these errors.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;gt;Type: '''deactivate'''&lt;br /&gt;
|| Type '''deactivate '''to exit the virtual environment.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide: &lt;br /&gt;
&lt;br /&gt;
'''Summary'''&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;This brings us to the end of the tutorial. Let us summarize.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this tutorial, we have learnt about&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;How to manage files using '''Python.'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;List the type of files in a directory.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Error and exception handling.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide: &lt;br /&gt;
&lt;br /&gt;
'''Assignment'''&lt;br /&gt;
|| As an assignment, please do the following:&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Organize files based on extension.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Print the number of directories created.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Print the number of files in each directory.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide: &lt;br /&gt;
&lt;br /&gt;
'''About the Spoken Tutorial Project'''&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;The video at the following link summarizes the &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''Spoken Tutorial project'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please download and watch it.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show Slide:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''Spoken Tutorial Workshops'''&amp;lt;/span&amp;gt; &lt;br /&gt;
|| &amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;The &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''Spoken Tutorial Project'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt; team conducts workshops and gives certificates.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more details, please write to us.&lt;br /&gt;
|- style=&amp;quot;border:0.75pt solid #808080;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Show Slide:&lt;br /&gt;
&lt;br /&gt;
'''Answers for THIS Spoken Tutorial'''&lt;br /&gt;
|| Please post your timed queries in this forum.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show Slide:&lt;br /&gt;
&lt;br /&gt;
'''FOSSEE Forum'''&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;For any general or technical questions on &amp;lt;/span&amp;gt;'''Python for'''&lt;br /&gt;
&lt;br /&gt;
'''Automation'''&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;, visit the&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;''' FOSSEE forum'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt; and post your question.&amp;lt;/span&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgement'''&lt;br /&gt;
|| '''Spoken Tutorial''' Project was established by the '''Ministry of Education, Government of India'''.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide:&lt;br /&gt;
&lt;br /&gt;
'''Thank You'''&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;This is &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''Dhaarani Pushpam S, '''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;a FOSSEE Semester long intern 2024, IIT Bombay signing off.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for joining.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:0cm;margin-right:0cm;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nirmala Venkat</name></author>	</entry>

	</feed>