[Tutor] Detect the folder of a file

Oscar Benjamin oscar.j.benjamin at gmail.com
Thu Apr 28 04:57:19 EDT 2016


On 28 April 2016 at 02:02, Kanika Murarka <murarkakanika at gmail.com> wrote:
> Thanks Oliver and Alex, I didnt know about these commands :D
>
> Oliver,
> When i typed
>                 print filename
>                 print sys.executable
>                 print sys.prefix
>                 print os.path.split(sys.prefix)[-1]
>
> my output was
>
> /home/kanikaa/pydsa7/venv/lib/python2.7/site-packages/ipython_genutils/tests/test_tempdir.py
>                 /usr/bin/python
>                 /usr
>                 usr
> but i want to know weather file belongs to 'venv' folder or not.

You can check if the 'venv' folder is part of a path using:

import os.path

dirpath = os.path.dirname(filename)
dirnames = []
while dirpath:
    dirpath, dirname = os.path.split(dirpath)
    dirnames.append(dirname)

if 'venv' in dirnames:
    # do whatever

But how would you know that 'venv' is the name of a virtual
environment folder? A virtual environment folder can be called
anything.

You can write some code to test if a particular path represents the
base directory of a virtual environment but I expect it would probably
be fragile. Without knowing why you want to do this I suggest that you
might want to find a different general approach to your real problem.

--
Oscar


More information about the Tutor mailing list