1

输入

import os
my_cwd = str(os.system("cd"))

输出

C:\ProgramData\Anaconda2

输入

my_cwd

输出

'0'

我希望调用 my_cwd 会返回'C:\ProgramData\Anaconda2'我缺少的东西?

4

1 回答 1

2

os.system将命令的返回码作为整数返回(这就是您尝试转换为 的原因str),而不是作为字符串的命令输出。

要获得输出,您可以使用subprocess.check_output(subprocess.run在 python 3.5+ 中) with shell=Truesince cdis built-in:

import subprocess
value = subprocess.check_output(["cd"],shell=True)

check_output如果命令失败,则会引发异常)

您还必须通过使用“清理”输出value.rstrip()并将结果解码为字符串,因为subprocess.check_output返回一个bytes对象......此外,您的代码在 Linux 上不可移植,因为所需的命令是pwd.

好吧,仅获取当前目录非常复杂(将那种东西留给clsclear命令)。最pythonic的方法是使用:

os.getcwd()
于 2017-08-01T20:40:08.417 回答