OS 모듈에 대한 문서는 하위 디렉토리 나 스크립트가 실행중인 현재 디렉토리에없는 파일을 여는 방법에 대한 정보가 없습니다 전체 경로. 내 디렉토리 구조는 다음과 같습니다.Python os module 상대 경로로 현재 디렉토리 위의 파일 열기
/home/matt/project/dir1/cgi-bin/script.py
/home/matt/project/fileIwantToOpen.txt
open("../../fileIwantToOpen.txt","r")
파일을 찾을 수 없습니다. 오류가 발생합니다. 그러나 cgi-bin 디렉토리에서 파이썬 인터프리터를 시작하고 open("../../fileIwantToOpen.txt","r")
을 시도하면 작동합니다. 명백한 이식성을 이유로 완전한 경로로 하드 코드를 작성하고 싶지 않습니다. OS 모듈에 CAN CAN 메소드가 있습니까?
흠. 권한 오류이거나 CGI의 작업 디렉토리가 파이썬 인터프리터와 다를 수 있습니다. 정확한 오류 메시지가 도움이 될 수 있습니다. 또한 CGI에서'print os.getcwd()'를 시도하고 그 내용을 확인하십시오. –
CGI 스크립트가 chroot jail에서 실행 중입니까? 그렇다면 감옥에서 탈출 할 수 없으므로이 방법은 효과가 없습니다. –
@ Adam Rosenfield no. @ Jason 말 그대로 cgi-bin 디렉토리에서 파이썬 인터프리터를 실행하므로 cgi-bin 디렉토리에서 실행되는 스크립트 내부에서 어떻게 작동하는지 이해할 수 없습니다. –