私はフォルダを作成してその中にファイルを作成しようとしています。Python mkdirが私に間違ったアクセス許可を与える
私はそのフォルダを(Python経由で)作成するたびに、アクセス権を全く持たないフォルダと読み取り専用モードを作成します。
ファイルを作成しようとすると、IOErrorが発生します。
他のすべてのモード(0770以外)の説明を作成(検索)してみました。
誰も私に光を与えることができますか?他のモードコードは何ですか?
私はフォルダを作成してその中にファイルを作成しようとしています。Python mkdirが私に間違ったアクセス許可を与える
私はそのフォルダを(Python経由で)作成するたびに、アクセス権を全く持たないフォルダと読み取り専用モードを作成します。
ファイルを作成しようとすると、IOErrorが発生します。
他のすべてのモード(0770以外)の説明を作成(検索)してみました。
誰も私に光を与えることができますか?他のモードコードは何ですか?
あなたはあなたがそれをバイナリに変換する場合は、最初のrwx
が所有者のためである
000 111 111 000
rwx rwx rwx
になり、MODがベース8で書かれているos.chmod
で権限を設定することができますフォルダを作成した後、 、第二のグループのためのものであり、第三世界のため
R = X =
PERMISを実行し、書き込み= W、読み出されますあなたが最も頻繁に参照されているシオン
7読み取り/書き込み/実行 - /あなたはディレクトリは内容
6のリードを参照するために実行する必要があるあなたがos.chmod
を使用する場合
4が読み取り専用
はそれが進表記を使用するのが最も理にかなって書きます はそう
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ではいずれかの構文を受け入れますので、選択したものは前方互換性と後方互換性のどちらにするかによって異なります。
おそらくファンキーなumaskがあります。ディレクトリを作成する前にos.umask(0002)
を試してください。
umaskが777の場合、すべての許可ビットがゼロになります。あなたは000を意味するかもしれません。 002または022を使用する方が賢明かもしれません。 –
/私はばかです。ありがとう。 –
ザ・Pythonのマニュアルは言う:
os.mkdir(path[, mode])
は数字モードモードとパスという名前のディレクトリを作成します。デフォルトモードは0777(8進数)です。一部のシステムでは、モードは無視されます。使用されている場合は、現在のumask値が最初にマスクされます。可用性:Unix、Windows。
指定したモード - どのモードを指定しましたか?明示的にモードを指定することを検討しましたか?プログラムのumask値は "
に設定されていますので、Windowsの場合、これはひどいことかもしれません。親ディレクトリやアクセス許可を定義するポリシー設定あなたのアカウントによって作成されます。私はこれがPythonの問題であるとは思っていません。これは、比較的バニラのVistaをインストールしてWindowsで問題を再現できなかったためです。
アクセス権のないパスにファイルを作成しようとしていますか? – jldupont
あなたのumaskは何ですか? – ephemient