2017-08-01 119 views
1

输入字符串变量

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

输出

C:\ ProgramData \ Anaconda2

输入

my_cwd 

输出

'0'

我希望呼吁my_cwd将返回'C:\ProgramData\Anaconda2'我缺少什么?

回答

2

os.system返回命令作为一个整数返回代码(这就是为什么你想转换为str),而不是命令作为一个字符串输出。

为了得到输出,你可以使用subprocess.check_outputsubprocess.run在Python 3.5+)与shell=True因为cd是内置:

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

check_output抛出一个异常,如果命令失败,虽然)

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

那么,非常复杂的只是获取当前目录(将clsclear命令留下那种东西)。获得它最pythonic的方式是使用:

os.getcwd() 
+0

非常好,谢谢,让。冷却后12分钟我会接受。 –

+1

'cd'在stdout上发出输出?我不希望第一种形式可以工作。 (也许这个电话应该是'pwd'?) –

+0

@CharlesDuffy是的,只是检查。 –