跨平台实践: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

相关推荐
凌波粒9 小时前
D2L学习笔记:安装、张量与数据处理
笔记·python·学习·pandas
副露のmagic10 小时前
字符串章节 leetcode 思路&实现
windows·python·leetcode
Android系统攻城狮10 小时前
Android tinyalsa深度解析之pcm_params_get_periods_min调用流程与实战(一百七十三)
android·pcm·tinyalsa·音频进阶手册
BackCatK Chen10 小时前
Python安装与VSCode配置完整教程(每步带截图说明)
vscode·python·python安装·vscode配置·python 3.9.10·嵌入式环境配置
疯狂的程序猴11 小时前
iOS 多技术栈混淆实现,跨平台 App 混淆拆解与组合
后端·ios
硅基喵11 小时前
Python 入门:从“其他语言”到 Pythonic 思维的完整迁移手册
python
海参崴-11 小时前
【Linux 项目自动化构建工具 -- make/makefile && 版本管理 Git 的使用&&第一个程序
linux·git·自动化
Xempastissimo11 小时前
Android常见界面控件
android
法欧特斯卡雷特11 小时前
从 Kotlin 编译器 API 的变化开始: 2.3.20
android·后端·开源
liu****11 小时前
LangChain-AI应用开发框架(二)
人工智能·python·langchain·大模型部署