python3の環境で、ディレクトリの権限を変更しようとしてos.chmod()を実行すると、invalid tokenエラーが発生することがあります。
プログラム
ディレクトリを作成するだけのプログラムです
import os
dirname = 'path/to/dir'
os.chmod(dirname, 0755)
実行結果
python3の環境で上記のプログラムを実行するとSyntaxError: invalid token
エラーが出力されました。
$ python --version
Python 3.6.5
$ python test.py
File "src/test.py", line 4
os.chmod(dirname, 0755)
^
SyntaxError: invalid token
原因と解決方法
これは、Python2とPython3で8進数を表す方法が変わったたためです。
Python2では、先頭に"0"をつけることで8進数を表していましたが、Python3では、"0o"をつける必要があります。
ですので以下のように書き換えれば良いです。
os.chmod(dirname, 0o755)
接頭語"0o"の覚え方ですが、0x"で16進数(heXadecimal)を表しているので、"0o"は8進数(oct)と考えると覚えやすいです。
こちらもおススメ