在我的程序中,我想根据用户所使用的操作系统是Windows还是Linux来导入simplejson或json.我将操作系统名称作为用户的输入.现在,执行以下操作是否正确?
osys = raw_input("Press w for windows,l for linux")
if (osys == "w"):
import json as simplejson
else:
import simplejson
Run Code Online (Sandbox Code Playgroud)
Mat*_*son 170
我已经看到这个成语用了很多,所以你甚至不需要做OS嗅探:
try:
import json
except ImportError:
import simplejson as json
Run Code Online (Sandbox Code Playgroud)
Nic*_*k T 50
完全正确,大量的包裹做到这一点.最好自己弄清楚操作系统,而不是依赖于用户; 这里以pySerial为例.
import sys
if sys.platform == 'cli':
from serial.serialcli import Serial
else:
import os
# chose an implementation, depending on os
if os.name == 'nt': # sys.platform == 'win32':
from serial.serialwin32 import Serial
elif os.name == 'posix':
from serial.serialposix import Serial, PosixPollSerial, VTIMESerial # noqa
elif os.name == 'java':
from serial.serialjava import Serial
else:
raise ImportError(
"Sorry: no implementation for your platform ('{}') available".format(
os.name
)
)
Run Code Online (Sandbox Code Playgroud)
小智 7
不建议将json或simplejson与OS平台绑定.simplejson是json的新版本和高级版本,所以我们应该先尝试导入它.
基于python版本,您可以尝试以下方式导入json或simplejson
import sys
if sys.version_info > (2, 7):
import simplejson as json
else:
import json
Run Code Online (Sandbox Code Playgroud)