How can I find the current OS in Python?
I usually use sys.platform
to get the platform. sys.platform
will distinguish between linux, other unixes, and OS X, while os.name
is "posix
" for all of them.
For much more detailed information, use the platform module. This has cross-platform functions that will give you information on the machine architecture, OS and OS version, version of Python, etc. Also it has os-specific functions to get things like the particular linux distribution.
How to identify which OS Python is running on?
>>> import os
>>> os.name
'posix'
>>> import platform
>>> platform.system()
'Linux'
>>> platform.release()
'2.6.22-15-generic'
The output of platform.system()
is as follows:
- Linux:
Linux
- Mac:
Darwin
- Windows:
Windows
See: platform
— Access to underlying platform’s identifying data
How do I check the operating system in Python?
You can use sys.platform
:
from sys import platform
if platform == "linux" or platform == "linux2":
# linux
elif platform == "darwin":
# OS X
elif platform == "win32":
# Windows...
sys.platform
has finer granularity than sys.name
.
For the valid values, consult the documentation.
See also the answer to “What OS am I running on?”
Detect OS with python
Use the platform
module:
import platform
print(platform.system())
print(platform.release())
print(platform.version())
Note that a system running on Mac will return 'Darwin' for platform.system()
platform.platform()
will return extremely detailed data, such as
'Linux-3.3.0-8.fc16.x86_64-x86_64-with-fedora-16-Verne'
Find the current directory and file's directory
To get the full path to the directory a Python file is contained in, write this in that file:
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
(Note that the incantation above won't work if you've already used os.chdir()
to change your current working directory, since the value of the __file__
constant is relative to the current working directory and is not changed by an os.chdir()
call.)
To get the current working directory use
import os
cwd = os.getcwd()
Documentation references for the modules, constants and functions used above:
- The
os
andos.path
modules. - The
__file__
constant os.path.realpath(path)
(returns "the canonical path of the specified filename, eliminating any symbolic links encountered in the path")os.path.dirname(path)
(returns "the directory name of pathnamepath
")os.getcwd()
(returns "a string representing the current working directory")os.chdir(path)
("change the current working directory topath
")
How do I check if I'm running on Windows in Python?
Python os module
Specifically for Python 3.6/3.7:
os.name
: The name of the operating
system dependent module imported. The
following names have currently been
registered: 'posix', 'nt', 'java'.
In your case, you want to check for 'nt' as os.name
output:
import os
if os.name == 'nt':
...
There is also a note on os.name
:
See also
sys.platform
has a finer granularity.os.uname()
gives
system-dependent version information.The platform module provides
detailed checks for the system’s identity.
How do I get the full path of the current file's directory?
The special variable __file__
contains the path to the current file. From that we can get the directory using either pathlib
or the os.path
module.
Python 3
For the directory of the script being run:
import pathlib
pathlib.Path(__file__).parent.resolve()
For the current working directory:
import pathlib
pathlib.Path().resolve()
Python 2 and 3
For the directory of the script being run:
import os
os.path.dirname(os.path.abspath(__file__))
If you mean the current working directory:
import os
os.path.abspath(os.getcwd())
Note that before and after file
is two underscores, not just one.
Also note that if you are running interactively or have loaded code from something other than a file (eg: a database or online resource), __file__
may not be set since there is no notion of "current file". The above answer assumes the most common scenario of running a python script that is in a file.
References
- pathlib in the python documentation.
- os.path - Python 2.7, os.path - Python 3
- os.getcwd - Python 2.7, os.getcwd - Python 3
- what does the __file__ variable mean/do?
Get current OS language - Python
Try this:
import locale
print(locale.getdefaultlocale())
https://docs.python.org/2/library/locale.html
How to detect the OS default language in python?
You could use the getdefaultlocale
function in the locale
module. It returns the language code and encoding of the system default locale in a tuple:
>>> import locale
>>> locale.getdefaultlocale()
('en_GB', 'cp1252')
Related Topics
Plotting a Fast Fourier Transform in Python
Using Multipartposthandler to Post Form-Data with Python
Getting Started with the Python Debugger, Pdb
How to Use Groupby to Concatenate Strings in Python Pandas
How to Execute a Python Script in Notepad++
Include Intermediary (Through Model) in Responses in Django Rest Framework
Standard Way to Embed Version into Python Package
Python's JSON Module, Converts Int Dictionary Keys to Strings
Creating Dynamically Named Variables from User Input
Conda' Is Not Recognized as Internal or External Command
Take the Content of a List and Append It to Another List