指定Windows用户ID查询全名时Python脚本语法错误求助
解决指定Windows用户ID获取全名的语法错误
你的语法错误出在字符串拼接的写法上:原代码中'net user' +USERID '/domain ...'不符合Python语法规范——+运算符前后需要有空格分隔,同时拼接后的命令字符串缺少必要的空格,会导致net user命令格式错误。
下面是两种修正方案:
方案1:修复字符串拼接
import subprocess USERID = "id12345" # 补全+号前后空格,同时给USERID添加双引号并保留命令所需空格 name = subprocess.check_output( 'net user "' + USERID + '" /domain | FIND /I "Full Name"', shell=True ) full_name = name.replace(b"Full Name", b"").strip() print(full_name.decode())
方案2:使用f-string(推荐)
Python 3.6及以上版本支持f-string,写法更简洁直观,还能避免拼接错误:
import subprocess USERID = "id12345" name = subprocess.check_output( f'net user "{USERID}" /domain | FIND /I "Full Name"', shell=True ) full_name = name.replace(b"Full Name", b"").strip() print(full_name.decode())
额外说明
给USERID套上双引号是为了兼容带空格或特殊字符的用户ID,避免命令执行失败;两种方案都能修复语法错误,同时保证net user命令能正确查询指定域用户的全名。
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

