Python returns 错误,但命令行没有
Python returns error, but Command Line doesn't
我正在尝试使用此命令获取所有 运行ning 进程
wmic /output:C:\ProcessList.txt process get caption
当我 运行 在 cmd 中使用它时,它可以工作并将所有内容输出到指定的文件。
当我用 Python 尝试 运行 时,我收到一条错误消息:
Invalid file name.
我尝试 运行 将其与 os.system 和 subprocess.call 结合使用,但两者都 return 出错。
os.system('wmic /output:C:\ProcessList.txt process get caption')
subprocess.call('wmic /output:C:\ProcessList.txt process get caption')
我也试过使用原始字符串。
os.system(r'wmic /output:C:\ProcessList.txt process get caption')
subprocess.call(r'wmic /output:C:\ProcessList.txt process get caption')
但到目前为止没有任何效果。
Python把一个\\读成\,所以你要做的是:
os.system('wmic /output:C:\\ProcessList.txt process get caption')
如您所见,您在命令提示符中使用了 2 个反斜杠。因此,为了使路径在 python 中工作,您将需要 4 个反斜杠。原因是反斜杠 (\
) 是字符串中的特殊字符。因此,为了使用单个反斜杠字符,您必须转义反斜杠,这是通过将 2 个反斜杠背靠背放置来完成的,如下所示:\
。您还可以使用原始字符串,它只是一个以“r”(r'...'
)为前缀的字符串,它会自动转义所有反斜杠。
因此,您可以使用以下方法之一:
使用原始字符串(自动转义反斜杠):
r'wmic /output:C:\ProcessList.txt process get caption'
手动转义反斜杠(4 个反斜杠):
'wmic /output:C:\\ProcessList.txt process get caption'
帮我找到了答案。他回答中的代码给了我真正的错误。我的代码给了我 Invalid file name.
他的代码返回:Permission denied: C\ProcessList.txt
。所以这是一个权限问题。我只是 运行 我的 IDE 具有管理员权限并且它有效。
为了避免 运行 我的 IDE 一直处于管理员模式,我只是将文件埋入 Documents 中,因此我不需要管理员权限即可访问它。
我正在尝试使用此命令获取所有 运行ning 进程
wmic /output:C:\ProcessList.txt process get caption
当我 运行 在 cmd 中使用它时,它可以工作并将所有内容输出到指定的文件。
当我用 Python 尝试 运行 时,我收到一条错误消息:
Invalid file name.
我尝试 运行 将其与 os.system 和 subprocess.call 结合使用,但两者都 return 出错。
os.system('wmic /output:C:\ProcessList.txt process get caption')
subprocess.call('wmic /output:C:\ProcessList.txt process get caption')
我也试过使用原始字符串。
os.system(r'wmic /output:C:\ProcessList.txt process get caption')
subprocess.call(r'wmic /output:C:\ProcessList.txt process get caption')
但到目前为止没有任何效果。
Python把一个\\读成\,所以你要做的是:
os.system('wmic /output:C:\\ProcessList.txt process get caption')
如您所见,您在命令提示符中使用了 2 个反斜杠。因此,为了使路径在 python 中工作,您将需要 4 个反斜杠。原因是反斜杠 (\
) 是字符串中的特殊字符。因此,为了使用单个反斜杠字符,您必须转义反斜杠,这是通过将 2 个反斜杠背靠背放置来完成的,如下所示:\
。您还可以使用原始字符串,它只是一个以“r”(r'...'
)为前缀的字符串,它会自动转义所有反斜杠。
因此,您可以使用以下方法之一:
使用原始字符串(自动转义反斜杠):
r'wmic /output:C:\ProcessList.txt process get caption'
手动转义反斜杠(4 个反斜杠):
'wmic /output:C:\\ProcessList.txt process get caption'
帮我找到了答案。他回答中的代码给了我真正的错误。我的代码给了我 Invalid file name.
他的代码返回:Permission denied: C\ProcessList.txt
。所以这是一个权限问题。我只是 运行 我的 IDE 具有管理员权限并且它有效。
为了避免 运行 我的 IDE 一直处于管理员模式,我只是将文件埋入 Documents 中,因此我不需要管理员权限即可访问它。