2017-04-01 1 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

저는 파이썬과 코딩 분야에 완전히 새로운 점을 알고 있습니다. check_output을 읽고 코드에 구현하려고합니다. 나를 알게 해줘서 고마워. 만약 당신이 내게 그것을 보여줄 수있는 것을 보여줄 수 있다면, 나는 그것을 정말로 고맙게 생각할 것입니다. – Craig

+0

cat과 함께 check_output을 이미 사용하고 있으므로 find와 함께 사용하지 않는 이유에 대해 혼란 스럽습니다. –

답변

2

\nstrip으로 제거하십시오 :

output = subprocess.check_output("cat MyDir.txt", shell=True).strip() 
os.chdir(output) 
관련 문제