开发者

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜