Remove Last Path Component In a String
You should not manipulate paths directly, there is os.path module for that.
>>> import os.path
>>> print os.path.dirname("C:\Users\myFile.txt")
C:\Users
>>> print os.path.dirname(os.path.dirname("C:\Users\myFile.txt"))
C:\
Like this.
The current way to do this (Python > 3.4) is to use the standard library's pathlib
module.
>>> import pathlib
>>> path = pathlib.Path(r"C:\Users\myFile.txt")
>>> path.parent
WindowsPath('C:/Users') #if using a Windows OS
>>> print(path.parent)
C:\Users
This has the additional benefit of being cross platform as pathlib
will make a path object suited for the current operating system (I am using Windows 10)
Other useful attributes/methods are:
path.name
>> "myFile.txt"
path.stem
>> "myFile"
path.parts
>> ("C:\\", "Users", "myFile.txt")
path.with_suffix(".csv")
>> "myFile.csv"
path.iterdir()
>> #iterates over all files/directories in path location
path.isdir()
>> #tells you if path is file or directory
You can also use os.path.split
, like this
>>> import os
>>> os.path.split('product/bin/client')
('product/bin', 'client')
It splits the path into two parts and returns them in a tuple. You can assign the values in variables and then use them, like this
>>> head, tail = os.path.split('product/bin/client')
>>> head
'product/bin'
>>> tail
'client'