Python mkdir дает мне неправильные разрешения
Я пытаюсь создать папку и создать файл в ней.
всякий раз, когда я создаю эту папку (через Python), он создает папку, которая не дает мне никаких разрешений вообще и только для чтения.
когда я пытаюсь создать файл, я получаю IOError.
Error: <type 'exceptions.IOError'>
Я попытался создать (и поиск) для описания всех других режимов (кроме 0770).
может ли кто-нибудь дать мне свет? Каковы другие коды режимов?
4 ответов
после создания папки вы можете установить разрешения с os.chmod
мод написан в базе 8, Если вы конвертируете его в двоичный, это будет
000 111 111 000
rwx rwx rwx
первый rwx
для владельца, вторая для группы, и третий в мире
r=чтение, w=запись, x=выполнение
разрешения, которые вы видите чаще всего являются
7 чтение / запись / выполнение - вам нужно выполнить для каталогов, чтобы увидеть содержимое
Шесть читать/писать
4 только для чтения
при использовании os.chmod
имеет смысл использовать восьмеричную нотацию
так что
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 принимает любой синтаксис, поэтому выбранный вами будет зависеть от того, хотите ли вы быть совместимыми вперед или назад.
в руководстве Python говорится:
os.mkdir(path[, mode])
создайте каталог с именем path в режиме числового режима. По умолчанию используется режим 0777 (восьмеричное). В некоторых системах режим игнорируется. Там, где он используется, текущее значение umask сначала маскируется. В Наличии: ОС Unix, ОС Windows.
вы указали режим - какой режим вы указали. Вы рассматривали возможность явного указания режима? И какое значение umask программы установлено в"
Так как ваш на Windows, это может быть crapshoot. Убедитесь, что нет никаких дурацких специальных разрешений на родительский каталог или с параметрами политики, определяющими разрешения, которые получают все каталоги, созданные вашей учетной записью. Я сомневаюсь, что это проблема python, поскольку я не смог воссоздать проблему в Windows с относительно ванильной установкой Vista.