cwd 的字符串变量
string variable of cwd
输入
import os
my_cwd = str(os.system("cd"))
输出
C:\ProgramData\Anaconda2
输入
my_cwd
输出
'0'
我希望调用 my_cwd 会 return 'C:\ProgramData\Anaconda2'
我错过了什么?
os.system
return命令的 return 代码 作为整数 (这就是您尝试转换为 str
) 的原因,而不是命令作为字符串的输出。
要获得输出,您可以将 subprocess.check_output
(python 3.5+ 中的 subprocess.run
)与 shell=True
一起使用,因为 cd
是内置的:
import subprocess
value = subprocess.check_output(["cd"],shell=True)
(如果命令失败,check_output
会引发异常)
您还必须使用 value.rstrip()
"cleanup" 输出并将结果解码为字符串,因为 subprocess.check_output
return 是一个 bytes
对象。 .. 此外,您的代码在 Linux 上不可移植,因为所需的命令是 pwd
.
好吧,获取当前目录非常复杂(为 cls
或 clear
命令保留此类内容)。获得它的最 pythonic 方法是使用:
os.getcwd()
输入
import os
my_cwd = str(os.system("cd"))
输出
C:\ProgramData\Anaconda2
输入
my_cwd
输出
'0'
我希望调用 my_cwd 会 return 'C:\ProgramData\Anaconda2'
我错过了什么?
os.system
return命令的 return 代码 作为整数 (这就是您尝试转换为 str
) 的原因,而不是命令作为字符串的输出。
要获得输出,您可以将 subprocess.check_output
(python 3.5+ 中的 subprocess.run
)与 shell=True
一起使用,因为 cd
是内置的:
import subprocess
value = subprocess.check_output(["cd"],shell=True)
(如果命令失败,check_output
会引发异常)
您还必须使用 value.rstrip()
"cleanup" 输出并将结果解码为字符串,因为 subprocess.check_output
return 是一个 bytes
对象。 .. 此外,您的代码在 Linux 上不可移植,因为所需的命令是 pwd
.
好吧,获取当前目录非常复杂(为 cls
或 clear
命令保留此类内容)。获得它的最 pythonic 方法是使用:
os.getcwd()