내가 어떻게 대처할 지 잘 모르겠다는 이상한 문제가 발생했습니다. 상대 경로를 사용하여 결과를 텍스트 파일에 기록하는 Python-selenium 스크립트가 있습니다. 당신이 볼 수 있듯이Python - 쉘에서 실행 중일 때와 다른 스크립트에서 실행 중일 때 경로를 다르게 해석합니까?
log_file = './demo-logfiles/log_file_template.txt'
sys.stdout = open('log_file_template.txt', 'a',)
, 그것은 폴더에 대한 상대 경로를 사용합니다 : 여기
로그 파일을 설정하는 스크립트의 일부입니다. 이 스크립트를python demo.py firefox MAC
같이 실행하면 완벽하게 실행되고 로그 파일이 적절한 폴더로 전송됩니다.
더 큰 쉘 스크립트에서이 정확한 Python 스크립트를 실행하면 './demo-logfiles/log_file_template.txt'
이라는 오류가 반환됩니다.
스크립트를 '../demo-logfiles/log_file_template.txt'
으로 변경하면 더 큰 쉘 스크립트에서 작동하지만 정상적으로 실행하면 작동이 중지된다는 사실을 발견했습니다.
둘 중 하나에서 작동합니다. 상대 디렉토리가 다른 방식으로 해석되는 이유는 무엇입니까? 파이썬/쉘에서 실행하기위한 별도의 스크립트 두 개를 갖고 싶지 않습니다.
원래 파이썬 스크립트는 디렉토리 /blah/blah/DEMO/demo.py
에 있으며, 그것이 내가이 문제가 내가 실행하려고 모든 스크립트에 대해 발생하는 것을 확인했다 /blah/blah/DEMO/demo-autotest/autotest_logger.sh
에 실행되는 쉘 스크립트. 원래의 파이썬 코드를 쉘 스크립트에서 작동하도록 변경하면 안된다. 나는 쉘 스크립트에서 이미 그것을 설명하고 파일을 성공적으로 실행한다.
감사합니다.
큰 스크립트에서 스크립트를 어떻게 부르시겠습니까? 다른 스크립트가 한 레벨 위의 디렉토리에 있습니까? –
@JustinEthier는 제 편집을 말합니다. – KamilS