import subprocess
import os
#files
src_file = '/../copy_me_test.txt'
destination_file = 'paste_here.txt'
#make copy of file
shell_command = 'cp "%s" "%s"' % (src_file, destination_file)
successful = subprocess.call(shell_command, shell = True)
print(successful)
그래서 한 디렉토리에서 다른 디렉토리로 파일을 복사합니다. subprocess.call() 메서드를 실행할 때 1을 반환합니다. 아무 일도 일어나지 않으면 터미널에 다음 메시지가 나타납니다.오류 Python Subprocess 호출 복사 파일입니다. 파일 없음, 실패, 1을 반환합니다. 왜?
cp: /Users/my_name/Desktop/python/copy_files/copy_me_test.txt: No such file or directory
1
여기서는 어떻게됩니까? 이 파일의 복사본을 만들지 못했기 때문에 0을 반환하지 않아야합니다. 나는 이미 문제를 해결했지만, 왜 이런 일이 일어 났는지 아는 사람이 있는지 알고 싶습니다. 모든 정보 또는 링크를 부탁드립니다. 실패 할 때
사이드 노트 : 쉘 프로그램이 필요하지 않을 때는 사용하지 마십시오. "''shutil.copyfile' and friends ''(https://docs.python.org/3/library/shutil.html#shutil.copyfile)을보고 파이썬에서 직접하기 위해서는 깨지기 쉽고 힘들지 않습니다. 에러 체크/비 휴대용 외부 프로그램 사용법. – ShadowRanger
나는 그것을 할 것이다. 저는 파이썬에 익숙하지 않아서 조언을 고맙게 생각합니다. 나는 당신이 의미하는 바를 "깨지기 쉽고/에러 체크하기가 어렵다/휴대용이 아닌 외부 프로그램 사용"이라고 이해하지 못한다. –
실행 파일을 서브 프로세스로 호출 할 때 파이썬에서 예외를 잡는 대신 반환 코드를 캡처하여 if-else 래더의 상수, 알려진 오류 코드와 비교해야합니다. 이것은 사용하기가 어렵습니다. 스크립트가 실행되는 플랫폼에 따라 오류 코드가 다를 수도 있으므로 잠재적으로 오류가 발생할 수 있습니다. 리턴 코드는 새로운 버전의 실행 파일에서 변경되어 취약합니다. – JacaByte