In Python, you can get and change [set] the current working directory with os.getcwd[]
and os.chdir[]
.
The os
module is included in the standard library, so no additional installation is required.
- os — Miscellaneous operating system interfaces — Python 3.7.4 documentation
This article describes the following contents.
- Get the current working directory:
os.getcwd[]
- Change the current working directory:
os.chdir[]
You can get the path of the current script file [.py
] with __file__
. See the following article.
- Get the path of current file [script] in Python:
__file__
Get the current working directory: os.getcwd[]
os.getcwd[]
returns the absolute path of the current working directory
where Python is running as a string str
.
getcwd
stands for "get current working directory", and the Unix command pwd
stands for "print working directory". Of course, you can print the current working directory with os.getcwd[]
and print[]
.
import os
path = os.getcwd[]
print[path]
# /Users/mbp/Documents/my-project/python-snippets/notebook
print[type[path]]
#
Use os.path
to manipulate the path string. See the following article for details.
- Get the filename, directory, extension from a path string in Python
Change the current working directory: os.chdir[]
You can change [set] the current working directory with os.chdir[]
.
Specify the destination path in the argument. It can be absolute or relative. Use '../'
to move up.
You can change the current directory like the Unix command cd
. Both chdir
and cd
stand for "change directory".
os.chdir['../']
print[os.getcwd[]]
# /Users/mbp/Documents/my-project/python-snippets
With the
__file__
and os.path
functions, you can change the current directory to the directory where the running script file [.py
] exists.
os.chdir[os.path.dirname[os.path.abspath[__file__]]]
See the following article for details.
- Get the path of current file [script] in Python:
__file__
I hope someone can help as I am stuck, I can't find the answer to this problem anywhere on google.
Nội dung chính
- Not the answer you're looking for? Browse other questions tagged python replace or ask your own question.
- How do I enable backslash in Python?
- How do I change a backslash in Python?
- Does Python use backslash or forward slash?
- How do you change backward slash to forward slash?
I need to replace my forward slash path with a backslash path in order for it to work with windows command prompt. Forward slash paths work for local folders, i.e. C:/Users/Lorcan - but not network folders, i.e. //Networkfolder/Storage
I learned that you can't use the backslash in python as it is a special character, so you must use two backslashes. However, this causes my path to have too many backslashes, and command prompt doesn't work.
>>> s = '//Networkfolder/Storage/Myfolder/Myfile'
>>> s2 = s.replace['/','\\']
>>> s2
'\\\\Networkfolder\\Storage\\Myfolder\\Myfile'
I am working in python and I need to convert this:
Nội dung chính
- Not the answer you're looking for? Browse other questions tagged python replace or ask your own question.
- How do I enable backslash in Python?
- How do I change a backslash in Python?
- Does Python use backslash or forward slash?
- How do you change backward slash to forward slash?
C:\folderA\folderB to C:/folderA/folderB
I have three approaches:
dir = s.replace['\\','/']
dir = os.path.normpath[s]
dir = os.path.normcase[s]
In each scenario the output has been
C:folderAfolderB
I'm not sure what I am doing wrong, any suggestions?
martineau
115k25 gold badges160 silver badges282 bronze badges
asked Aug 5, 2014 at 19:39
3
I recently found this and thought worth sharing:
import os
path = "C:\\temp\myFolder\example\\"
newPath = path.replace[os.sep, '/']
print[newPath] # -> C:/temp/myFolder/example/
martineau
115k25 gold badges160 silver badges282 bronze badges
answered May 7, 2018 at 19:27
NumabyteNumabyte
7405 silver badges6 bronze badges
1
Your specific problem is the order and escaping of your replace
arguments, should be
s.replace['\\', '/']
Then there's:
posixpath.join[*s.split['\\']]
Which on a *nix platform is equivalent to:
os.path.join[*s.split['\\']]
But don't rely on that on Windows because it will prefer the platform-specific separator. Also:
Note that on Windows, since there is a current directory for each drive, os.path.join["c:", "foo"] represents a path relative to the current directory on drive C: [c:foo], not c:\foo.
answered Aug 5, 2014 at 19:47
Jason SJason S
13.1k2 gold badges35 silver badges42 bronze badges
3
Try
path = '/'.join[path.split['\\']]
answered Aug 5, 2014 at 19:41
TheoretiCALTheoretiCAL
17.9k8 gold badges38 silver badges63 bronze badges
1
Path names are formatted differently in Windows. the solution is simple, suppose you have a path string like this:
data_file = "/Users/username/Downloads/PMLSdata/series.csv"
simply you have to change it to this: [adding r front of the path]
data_file = r"/Users/username/Downloads/PMLSdata/series.csv"
The modifier r before the string tells Python that this is a raw string. In raw strings, the backslash is interpreted literally, not as an escape character.
answered Jun 28, 2018 at 7:39
scapascapa
1191 silver badge6 bronze badges
1
Sorry for being late to the party, but I wonder no one has suggested the pathlib-library.
pathlib is a module for "Object-oriented filesystem paths"
To convert from windows-style [backslash]-paths to forward-slashes [as typically for Posix-Paths] you can do so in a very verbose [AND platform-independant] fashion with pathlib:
import pathlib
pathlib.PureWindowsPath[r"C:\folderA\folderB"].as_posix[]
>>> 'C:/folderA/folderB'
Be aware that the example uses the string-literal "r" [to avoid having "\" as escape-char] In other cases the path should be quoted properly [with double backslashes] "C:\\folderA\\folderB"
answered May 14, 2021 at 14:55
StefanStefan
1112 silver badges8 bronze badges
To define the path's variable you have to add r
initially, then add the replace statement .replace['\\', '/']
at the end.
for example:
In>> path2 = r'C:\Users\User\Documents\Project\Em2Lph\'.replace['\\', '/']
In>> path2
Out>> 'C:/Users/User/Documents/Project/Em2Lph/'
This solution requires no additional libraries
answered Mar 21, 2018 at 10:53
Mohammad ElNesrMohammad ElNesr
2,3373 gold badges27 silver badges42 bronze badges
1
How about :
import ntpath
import posixpath
.
.
.
dir = posixpath.join[*ntpath.split[s]]
.
.
answered Sep 28, 2017 at 6:29
1
This can work also:
def slash_changer[directory]:
if "\\" in directory:
return directory.replace[os.sep, '/']
else:
return directory
print[slash_changer[os.getcwd[]]]
answered Nov 19, 2021 at 22:04
this is the perfect solution put the letter 'r' before the string that you want to convert to avoid all special characters likes '\t' and '\f'... like the example below:
str= r"\test\hhd"
print["windows path:",str.replace["\\","\\\\"]]
print["Linux path:",str.replace["\\","/"]]
result:
windows path: \\test\\hhd
Linux path: /test/hhd
answered Mar 26 at 11:02
Not the answer you're looking for? Browse other questions tagged python replace or ask your own question.
How do I enable backslash in Python?
In short, to match a literal backslash, one has to write '\\\\' as the RE string, because the regular expression must be "\\", and each backslash must be expressed as "\\" inside a regular Python string literal.
How do I change a backslash in Python?
We can use the replace[] function to replace the backslashes in a string with another character. To replace all backslashes in a string, we can use the replace[] function as shown in the following Python code.
Does Python use backslash or forward slash?
Programming languages, such as Python, treat a backslash [\] as an escape character. For instance, \n represents a line feed, and \t represents a tab. When specifying a path, a forward slash [/] can be used in place of a backslash. Two backslashes can be used instead of one to avoid a syntax error.
How do you change backward slash to forward slash?
By default the key is backslash, and is a way to refer to a backslash in a mapping, so by default these commands map \/ and \\ respectively. Press \/ to change every backslash to a forward slash, in the current line. Press \\ to change every forward slash to a backslash, in the current line.