2017-08-01 13 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に変換しようとした理由です)、いない文字列としてコマンドの出力としてコマンドリターンコードを返します。

出力を取得するには、使用することができcd以来shell=Truesubprocess.check_output(パイソンでsubprocess.run 3.5+)ビルトインです:

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

(コマンドが失敗した場合check_outputはしかし、例外が発生します)

また、value.rstrip()を使用して出力をクリーンアップし、結果を文字列にデコードする必要があります。subprocess.check_outputbytesオブジェクトを返します。また、コードはLinuxでは移植性がありません。 dはpwdとなります。

さて、現在のディレクトリを取得するのは非常に複雑です(clsまたはclearコマンドの場合はそのままにしてください)。それを取得する最もpythonic方法は、使用することです:

os.getcwd() 
+0

優秀、ジーン、ありがとうございます。クールダウンから12分後に私は受け入れます。 –

+1

'cd'はstdoutに出力を出しますか?私は最初のフォームがまったく動作するとは思っていません。 (おそらくコールは 'pwd'になるはずですか?) –

+0

@CharlesDuffyはい、チェックしました。 –