跨平台实践:python中如何检查当前操作系统

之前写的Android UI 自动化脚本及专项测试代码是在Windows上开发的,现在换mac了,有些地方需要根据不同系统环境进行兼容适配了,例如,

Windows:

python 复制代码
yaml_url = os.path.join(path, 'xx_ui_auto\\devices.yaml')

Mac:

python 复制代码
yaml_url = os.path.join(path, 'xx_ui_auto/devices.yaml')

在 python 中,可以使用内置的 os 模块的 os.name 或 platform.system() 来判断当前操作系统。以下是实现方法:

python 复制代码
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}")

或者

python 复制代码
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,并统一使用正斜杠 /(兼容性更好)。

python 复制代码
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

相关推荐
天天被压力15 分钟前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python
天天被压力21 分钟前
【A股分钟级高频数据完全手册 #08】股票日、分时数据接口对比:普通分时与Pro版差异实测
java·人工智能·python
特立独行的猫A36 分钟前
AI 时代,我为什么推荐用 cj-tauri 开发桌面应用
java·后端·python
小lo想吃棒棒糖1 小时前
把机器人训练从 GPU 搬到昇腾 NPU:启元 Q1 起身动作 PPO 训练全记录
python·机器人·昇腾·启元机器人
Thanks_ks1 小时前
【第 006 讲】搭建 PyCharm 开发环境:PyCharm 的下载与安装 | 初始设置与常用配置
ide·python·pycharm·开发工具·jetbrains·开发环境·集成开发环境
微小的鱼1 小时前
Linux的渲染与显示系统链路
android·java·linux
茶底世界之下2 小时前
雨后街口的斑马线:用 Awaking 把颜色让给光与步伐
ios·app·产品
lisw052 小时前
基于神经网络的机器人导航系统的设计与执行!
神经网络·机器人·自动化
青少儿编程课堂2 小时前
蓝桥杯青少组图形化省考报名倒计时·全国青少年信息素养大赛·电子学会图形化考级:校园黑白棋人机对战解析
c++·python·算法·bfs·信息学竞赛
严肃小白兔2 小时前
Cloudflare 更新 API Token 管理:从最小权限到自动化凭据安全
网络·安全·自动化