User Tools

Site Tools


task_boiler

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
task_boiler [2023/05/03 16:40] – [find depth of a file or directory] admintask_boiler [2024/01/22 22:50] raju
Line 4: Line 4:
 Start the first heading with "=====" Start the first heading with "====="
  
-===== find depth ===== +===== Issue ==== 
-==== find depth of a file or directory ====+barrons.com is giving the following error.
 <code> <code>
-import os +You have been blocked.
-  +
-def get_depth(file_or_dir_path): +
-    abs_path = os.path.abspath(os.path.expanduser(file_or_dir_path)) +
-    depth = os.path.normpath(abs_path).count(os.sep) +
-    return depth +
-</code>+
  
-Examples: +Why? 
-<code> +Something about the behaviour of the browser has caught our 
-In [2]:  +attention.
-os.path.abspath(os.path.expanduser('~')) +
-Out[2]:  +
-'/home/rajulocal' +
- +
-In [3]:  +
-get_depth('~'+
-Out[3]:  +
-+
- +
-In [4]:  +
-get_depth('/home/rajulocal'+
-Out[4]:  +
-+
- +
-In [5]:  +
-get_depth('/home/rajulocal/'+
-Out[5]:  +
-+
- +
-In [6]:  +
-get_depth('/home/rajulocal/foo'+
-Out[6]:  +
-+
- +
-In [7]:  +
-get_depth('/'+
-Out[7]:  +
-+
- +
-In [8]:  +
-get_depth('/home'+
-Out[8]:  +
-+
-</code> +
- +
-Using Python 3.10.6, Ipython 8.6.0 +
- +
-tags | measure the depth of a file system path +
- +
-See also: +
-  * https://stackoverflow.com/questions/31528199/how-to-measure-the-depth-of-a-file-system-path - shows how to do it with various command line tools. +
-  * https://docs.python.org/3/library/os.path.html +
- +
-==== depth of a directory relative to a parent directory ==== +
-<code> +
-import os +
-  +
-def dir_depth_relative(child, parent): +
-    child = os.path.abspath(os.path.expanduser(child)) +
-    parent = os.path.abspath(os.path.expanduser(parent)) +
-    assert child.startswith(parent), "child parent relation violated. parent = " + parent + ', child = ' + child +
-    name_space = os.path.relpath(child, parent) +
-    level = os.path.normpath(name_space).count(os.sep) + 1 if name_space != '.' else 0 +
-    return level +
-</code> +
- +
-Examples: +
-<code> +
-In [2]:  +
-[dir_depth_relative('~', '~'), dir_depth_relative('~', '~/'), +
- dir_depth_relative('~/work', '~'), dir_depth_relative('~/work.txt', '~'), +
- dir_depth_relative('/tmp/foo', '/tmp'), dir_depth_relative('/tmp', '/tmp'), +
- dir_depth_relative('/tmp/foo/bar', '/tmp')] +
-Out[2]:  +
-[0, 0, 1, 1, 1, 0, 2] +
- +
-In [3]:  +
-dir_depth_relative('/tmp', '/tmp/foo'+
---------------------------------------------------------------------------- +
-AssertionError                            Traceback (most recent call last) +
-Cell In [3], line 1 +
-----> 1 dir_depth_relative('/tmp', '/tmp/foo')+
  
-Cell In [1], line 6, in dir_depth_relative(child, parent) +There are various possible explanations for this: 
-      4 child = os.path.abspath(os.path.expanduser(child)) +* You are browsing and clicking at a speed much faster than 
-      5 parent = os.path.abspath(os.path.expanduser(parent)) +  expected of a human being
-----> 6 assert child.startswith(parent), "child parent relation violated. parent = " + parent + ', child = ' + child +* Something is preventing JavaScript from working on your 
-      7 name_space = os.path.relpath(child, parent) +  computer
-      8 level = os.path.normpath(name_space).count(os.sep+ 1 if name_space != '.' else 0+* There is a robot on the same network (IP WW.XX.YY.ZZas you.
  
-AssertionError: child parent relation violatedparent = /tmp/foo, child = /tmp+Having problems accessing the site? Submit feedback. 
 +ID: a-b-c-d-e
 </code> </code>
  
task_boiler.txt · Last modified: 2024/01/23 22:55 by raju