Skip to main content

Python Program to Print Directory Structure Recursively

os.walk - Recursively Generate the file names in a directory tree by walking the tree either top-down or bottom-up. For each directory in the tree rooted at directory top (including top itself), it yields a 3-tuple (dirpath, dirnames, filenames).


Reference - https://docs.python.org/2/library/os.html

Python Program -

#!/usr/bin/python3

#Python Program to Print Directory and Files Recursively

import os

def print_dir(path):
  for dirName,subdirList,fileList in os.walk(path):
    nw_path = dirName.split('/')
    print("|",(len(nw_path))*"---","[",os.path.basename(dirName),"]")
    for fl in fileList:
      print("|",len(nw_path)*"---","->",str(fl))


if __name__ == "__main__":
  path = input("Enter the directory path :-")
  print_dir(path)



Output -

surendra@Surendra:~/workspace/Python_Programs$ python3 recurse_print.py
Enter the directory path :-/home/surendra/workspace
| ------------ [ workspace ]
| --------------- [ Python_Programs ]
| --------------- -> swap_adjecentpairs.py
|| --------------- -> list_methods.py
| ------------------ [ .git ]
| ------------------ -> HEAD
| ------------------ -> index
| ------------------ -> description
| ------------------ -> COMMIT_EDITMSG
| ------------------ -> config
| ------------------ -> packed-refs
| --------------------- [ info ]
| --------------------- -> exclude
| --------------------- [ logs ]
| --------------------- -> HEAD
| ------------------------ [ refs ]
| --------------------------- [ heads ]
| --------------------------- -> master
| --------------------------- [ remotes ]
| ------------------------------ [ origin ]
| ------------------------------ -> HEAD
| ------------------------------ -> master
| --------------------- [ branches ]
| --------------------- [ hooks ]
| --------------------- -> pre-applypatch.sample
| --------------------- -> pre-rebase.sample
| --------------------- -> commit-msg.sample
| --------------------- [ refs ]

Comments

Popular posts from this blog

Sampling and FFT Size derivation in LTE

Sampling and FFT Size derivation in LTE Ts = 1 / (15000 x 2048) seconds, which corresponds to the 30.72 MHz sample clock for the 2048 point FFT used with the 20 MHz system bandwidth. In the frequency domain, the number of sub-carriers N ranges from 128 to 2048, depending on channel bandwidth with 512 and 1024 for 5 and 10 MHz, respectively, being most commonly used in practice. The sub-carrier spacing is ∆f = 1/T u = 15 kHz. The sampling rate is fs = ∆f · N = 15000 N. This results in a sampling rate that’s multiple or sub-multiple of the WCDMA chip rate of 3.84 Mcps: LTE parameters have been chosen such that FFT lengths and sampling rates are easily obtained for all operation modes while at the same time ensuring the easy implementation of dual-mode devices with a common clock reference. Sampling frequency is Multiple's of 2, For 15 Mhz Bandwidth - Sampling Frequency = 23.04 (6 * 3.84). FFT SIZE = S...

C Programming Questions – Part 1

1. W hat do curly braces denote in C? Why does it make sense to use curly brac es to surround the body of a function?   Answer: The curly braces denote a block of code, in which variables can be declared. Variables declared within the block are valid only until the end of the block, marked by the matching right curly brace ’}’. The body of a function is one such type of block, and thus, curly braces are used to describe the extent of that block . 2.Describe the difference between the literal values 7, "7", and ’7 ’ ?   Answer: The first literal is integer 7.Second literal is null terminated string value '7'.Third literal is character '7' having ASCII character code (55). 3. Consider the statement double ans = 10.0+2.0/3.0−2.0∗2.0; Rewrite this statement, inserting parentheses to ensure that ans = 11.0 upon evaluation of this statement ? Answer: double ans = 10.0+2.0/ (( 3.0−2.0 ) ∗2.0 ) ; 4 .C...

How to write Linux Kernel Modules

1) hello_driver.c program which conatins the init and exit functions /* This is my first driver module program */ #include<linux/init.h> #include<linux/module.h> #include<linux/kernel.h> static int __init hello_init(void) {         printk(KERN_ALERT "Hello my first module \n");         return 0; } static void __exit hello_exit(void) {         printk(KERN_ALERT "Good Bye \n"); } module_init(hello_init); module_exit(hello_exit); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("Hello world Module"); MODULE_AUTHOR("SURENDRA PATIL"); 2) Make file for the module ifneq ($(KERNELRELEASE),)         obj-m := hello_driver.o else         KDIR ?= /lib/modules/$(shell uname -r)/build         PWD :=$(shell pwd) default:     ...