如何使用Python获取cmd中显示的Windows系统用户名
实现方案
你需要提取的是Windows标准C:\Users\目录下紧跟的用户名字段,以下是几种不同实现方式:
方法1:使用pathlib(Python 3.4+ 推荐,路径处理最规范)
属于Python标准库,无需额外安装,自动适配不同路径分隔符,容错性最高:
from pathlib import Path def get_username_from_path(file_path): path_obj = Path(file_path) parts = path_obj.parts if 'Users' in parts: users_index = parts.index('Users') if len(parts) > users_index + 1: return parts[users_index + 1] return None # 测试用例 print(get_username_from_path(r'C:\Users\john\Desktop\chrome.exe')) # 输出john print(get_username_from_path(r'C:\Users\Steve\Desktop\chrome.exe')) # 输出Steve
方法2:使用os.path模块(兼容Python2及旧版本Python)
适配旧版本Python的实现方案:
import os def get_username_from_path(file_path): path_split = [] while True: file_path, tail = os.path.split(file_path) if tail: path_split.append(tail) else: if file_path: path_split.append(file_path) break path_split = path_split[::-1] if 'Users' in path_split: users_index = path_split.index('Users') if len(path_split) > users_index + 1: return path_split[users_index + 1] return None # 测试用例 print(get_username_from_path(r'C:\Users\john\Desktop\chrome.exe')) # 输出john
方法3:简单字符串分割(仅适配固定格式路径的极简方案)
如果你的输入路径格式完全固定为C:\Users\用户名\...格式,可以用更简短的实现:
def get_username_from_path(file_path): return file_path.split('\\')[2] # 测试用例 print(get_username_from_path(r'C:\Users\john\Desktop\chrome.exe')) # 输出john
注意:该方法仅适用于路径格式完全固定的场景,容错性较低,不推荐用于输入不确定的生产环境。
内容的提问来源于stack exchange,提问作者Dkns
相关产品推荐
相关产品推荐

