문제

폴더를 만들고 그 안에 파일을 만들려고 합니다.

Python을 통해 해당 폴더를 생성할 때마다 권한이 전혀 없고 읽기 전용 모드를 제공하는 폴더가 생성됩니다.

파일을 생성하려고 하면 IOError가 발생합니다.

Error:  <type 'exceptions.IOError'>

(0770 이외의) 다른 모든 모드에 대한 설명을 작성(및 검색)해 보았습니다.

누구든지 나에게 빛을 줄 수 있습니까?다른 모드 코드는 무엇입니까?

도움이 되었습니까?

해결책

폴더를 작성한 후에는 권한을 설정할 수 있습니다. os.chmod

모드는 기본 8로 작성되며 이진으로 변환하면

000 111 111 000
    rwx rwx rwx

첫번째 rwx 소유자를위한 것이고, 두 번째는 그룹을위한 것이고 세 번째는 세계를위한 것입니다.

r = 읽기, w = 쓰기, x = 실행

가장 자주 보는 권한은 있습니다
7 읽기/쓰기/실행 - 내용을보기 위해 디렉토리를 위해 실행해야합니다.
6 읽기/쓰기
4 Readonly

당신이 사용할 때 os.chmod Octal 표기법을 사용하는 것이 가장 합리적입니다

os.chmod('myfile',0o666)  # read/write by everyone
os.chmod('myfile',0o644)  # read/write by me, readable for everone else

나는 당신이 일반적으로 디렉토리를 "실행 가능"하기를 원한다고 말했기 때문에 내용을 볼 수 있습니다.

os.chmod('mydir',0o777)  # read/write by everyone
os.chmod('mydir',0o755)  # read/write by me, readable for everone else

참고 : 구문 0o777 Python 2.6 및 3+ 용입니다. 그렇지 않으면 2 시리즈의 경우입니다 0777. 2.6 선택한 구문은 구문을 수락하여 선택한 것은 전방 또는 후진 호환 여부에 따라 다릅니다.

다른 팁

당신은 아마 펑키 한 움 마스크를 가지고있을 것입니다. 노력하다 os.umask(0002) 디렉토리를 만들기 전에.

파이썬 매뉴얼은 다음과 같이 말합니다.

os.mkdir(path[, mode])

숫자 모드 모드로 PATH라는 이름의 디렉토리를 만듭니다. 기본 모드는 0777 (Octal)입니다. 일부 시스템에서는 모드가 무시됩니다. 사용되는 경우 현재 Umask 값이 먼저 마스킹됩니다. 가용성 : Unix, Windows.

모드를 지정 했습니까? 어떤 모드를 지정 했습니까? 모드를 명시 적으로 지정하는 것을 고려 했습니까? 그리고 프로그램의 Umask 값은 "로 설정된"

Windows를 사용하고 있으므로 이것은 문제가 될 수 있습니다.상위 디렉터리 또는 계정에서 생성된 모든 디렉터리에 부여되는 권한을 정의하는 정책 설정에 이상한 특수 권한이 ​​없는지 확인하세요.상대적으로 바닐라 Vista를 설치한 Windows에서 문제를 재현할 수 없었기 때문에 이것이 Python 문제인지 의심됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top