Cross platform code in python
How can I write in python some windows code to execute only when I am runnin开发者_运维技巧g the script in widnows, if I should run it in linux, that part of the windows code should be ignored, something simillar to this, in C++:
#ifdef windows
//code
#endif
#ifdef linux
//code
#endif
I tried something like this in python:
if os.name = 'nt':
#code
But in linux it gives me an error(I am using STARTF_USESHOWWINDOW, witch gives error).
startupinfo = None
if sys.platform == 'win32':
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= _subprocess.STARTF_USESHOWWINDOW #error here
startupinfo.wShowWindow = _subprocess.SW_HIDE # error here
Traceback (most recent call last):
File "/home/astanciu/workspace/test/src/main.py", line 10, in <module>
import _subprocess
ImportError: No module named _subprocess
Checks for the platform should be necessary at much fewer places in Python than in C. If you really have to do it, the preferred way is to check sys.platform
rather than os.name
.
You can have conditional code based on the value of os.name
using the correct comparison operator (==
):
if os.name == 'nt':
#code
精彩评论