Python中的跨平台代码
我想知道怎么在Python里写一些代码,让它只在Windows系统下执行。如果我在Linux上运行这个脚本,Windows的那部分代码就应该被忽略。就像在C++中那样:
#ifdef windows
//code
#endif
#ifdef linux
//code
#endif
我在Python里试过类似的代码:
if os.name = 'nt':
#code
但是在Linux上运行时,它给我报错(我使用了STARTF_USESHOWWINDOW,这个会出错)。
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
2 个回答
3
你可以根据 os.name
的值来写一些有条件的代码,使用正确的比较符号 (==
) 来进行判断:
if os.name == 'nt':
#code
7
在Python中,检查平台的地方应该比在C语言中少得多。如果你真的需要这么做,推荐的方式是检查 sys.platform
,而不是 os.name
。