14

フォルダを作成し、その中にファイルを作成しようとしています。

(Pythonを介して)そのフォルダーを作成するたびに、アクセス許可がまったくなく、読み取り専用モードのフォルダーが作成されます。

ファイルを作成しようとすると、IOErrorが発生します。

Error:  <type 'exceptions.IOError'>

他のすべてのモード(0770を除く)の説明を作成(および検索)してみました。

誰かが私に光を与えることができますか?他のモードコードは何ですか?

4

4 に答える 4

21

フォルダを作成したら、次のコマンドで権限を設定できますos.chmod

modは基数8で記述されており、バイナリに変換すると次のようになります。

000 111 111 000
    rwx rwx rwx

1つ目rwxは所有者用、2つ目はグループ用、3つ目は世界用です。

r =読み取り、w =書き込み、x=実行

最も頻繁に表示される権限は
7読み取り/書き込み/実行です-内容を表示するにはディレクトリに対して実行する必要があります
6読み取り/書き込み
4読み取り専用

使用するときはos.chmod、8進表記を使用するのが最も理にかなっています。

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

注:の構文は0o777Python2.6および3以降用です。それ以外の場合、2シリーズの場合は0777です。2.6はどちらの構文も受け入れるため、選択する構文は、下位互換性があるか下位互換性があるかによって異なります。

于 2009-10-26T20:42:58.657 に答える
5

あなたはおそらくファンキーなumaskを持っています。os.umask(0002)ディレクトリを作成する前に試してください。

于 2009-10-26T20:47:50.503 に答える
3

Pythonのマニュアルには次のように書かれています。

os.mkdir(path[, mode])

数値モードモードでpathという名前のディレクトリを作成します。デフォルトのモードは0777(8進数)です。一部のシステムでは、モードは無視されます。これが使用される場合、現在のumask値が最初にマスクされます。可用性:Unix、Windows。

モードを指定しましたか?どのモードを指定しましたか。モードを明示的に指定することを検討しましたか?そして、プログラムのumask値は何に設定されていますか?」

于 2009-10-26T22:06:37.173 に答える
1

Windowsを使用しているので、これはクラップスかもしれません。親ディレクトリに、またはアカウントによって作成されたディレクトリが取得するアクセス許可を定義するポリシー設定を使用して、風変わりな特別なアクセス許可がないことを確認してください。比較的バニラなVistaをインストールしたWindowsで問題を再現できなかったため、これがPythonの問題であるとは思えません。

于 2009-10-27T01:52:16.197 に答える