跨平台实践:python中如何检查当前操作系统
之前写的Android UI 自动化脚本及专项测试代码是在Windows上开发的,现在换mac了,有些地方需要根据不同系统环境进行兼容适配了,例如,
Windows:
yaml_url = os.path.join(path, 'xx_ui_auto\\devices.yaml')
Mac:
yaml_url = os.path.join(path, 'xx_ui_auto/devices.yaml')
在 python 中,可以使用内置的 os 模块的 os.name 或 platform.system() 来判断当前操作系统。以下是实现方法:
import os
import platform
# 基础路径
path = "/Users/testmanzhang"
# 判断系统类型
if os.name == 'nt': # Windows 系统
yaml_url = os.path.join(path, 'xx_ui_auto\\devices.yaml')
elif os.name == 'posix': # macOS 或 Linux 系统
yaml_url = os.path.join(path, 'xx_ui_auto/devices.yaml')
else:
raise RuntimeError("Unsupported operating system")
print(f"File path is: {yaml_url}")
或者
import os
import platform
# 基础路径
path = "/Users/testmanzhang"
# 根据平台判断路径
system_name = platform.system()
if system_name == "Windows":
yaml_url = os.path.join(path, 'xx_ui_auto\\devices.yaml')
elif system_name == "Darwin": # macOS
yaml_url = os.path.join(path, 'xx_ui_auto/devices.yaml')
elif system_name == "Linux":
yaml_url = os.path.join(path, 'xx_ui_auto/devices.yaml') # 假设 Linux 和 macOS 目录相同
else:
raise RuntimeError("Unsupported operating system")
print(f"File path is: {yaml_url}")
为避免手动处理路径分隔符,推荐使用 os.path.join 或 pathlib,并统一使用正斜杠 /(兼容性更好)。
from pathlib import Path
import platform
# 基础路径
path = Path("/Users/testmanzhang")
# 动态判断路径
system_name = platform.system()
if system_name == "Windows":
yaml_url = path / "xx_ui_auto" / "devices.yaml"
elif system_name in ["Darwin", "Linux"]: # macOS 或 Linux
yaml_url = path / "xx_ui_auto" / "devices.yaml"
else:
raise RuntimeError("Unsupported operating system")
print(f"File path is: {yaml_url}")
【总结】
os.name:
'nt': Windows
'posix': macOS 和 Linux
platform.system():
'Windows': Windows
'Darwin': macOS
'Linux': Linux