2017-04-01 7 views
0

特定のパス名を見つけようとしていて、これをos.chdirに渡そうとしています。そのディレクトリでコマンドを実行できます。私は正確なパス名を知らないので、なぜfindコマンドを実行しなければならないのでしょうか。私はこれを行ういくつかの方法を試して、それぞれ新しいエラーが付属しています。以下のコードは、私が試した方法の一つです、誰もがこれを行うための最善の方法を提案することができますか?またはこのエラーを修正する方法は?変数をos.chdirに渡すときのpython3エラー

ソースコード:

import os 
import subprocess 

os.system('find ~ -path "*MyDir" > MyDir.txt') 

output = subprocess.check_output("cat MyDir.txt", shell=True) 

os.chdir(output) 

os.system("file * > MyDir/File.txt") 

エラー:

Traceback (most recent call last): 
File "sub1.py", line 8, in <module> 
os.chdir(output) 
FileNotFoundError: [Errno 2] No such file or directory: b'/Users/MyhomeDir/Desktop/MyDir\n' 

私はディレクトリが存在することを知っていて、それがBとは何か 'と\ n' を持っていると推定。私は問題が何であるか分かりません。

+0

は、なぜあなたはファイルに見つけるの出力をリダイレクトする代わりに、直接見つけてcheck_output使用していますか? –

+0

私はPythonとコーディングには全く新しいです。私はcheck_outputを読み込み、自分のコードに実装しようとします。私にそれを知らせてくれてありがとう。あなたが私にそれがどのように見えるかの例を与えることができれば、本当にそれを感謝するでしょう。 – Craig

+0

あなたは既にcatでcheck_outputを使用していますので、なぜfindでそれを使用していないのか混乱しています。 –

答えて

2

\nstripで取り除く:

output = subprocess.check_output("cat MyDir.txt", shell=True).strip() 
os.chdir(output) 
関連する問題