eg:
[Step 2]: preparing environment ...
File "./prepare", line 60
os.makedirs(folder, mode=0600)
^
SyntaxError: invalid token
在Python 3中,数字不允许前导零。例如:
<span style="color:#242729"><span style="color:#393318"><code><span style="color:#7d2727">05</span>
<span style="color:#7d2727">0123</span></code></span></span>
等等是不允许的,但应该写成5
而123
不是。
但是,在Python 2中,前导零表示该数字是八进制数(基数为8),因此04
或分别03
表示4
和3
八进制数,但08
由于它不是有效的八进制数,因此无效。
在Python 3中,octals的语法更改为:
<span style="color:#242729"><span style="color:#393318"><code><span style="color:#7d2727">0o10</span>
<span style="color:#7d2727">0o4</span></code></span></span>
(以及使用0b
或0x
前缀允许其他基础,如二进制和十六进制。)
至于你的另一个问题,Python中的一个标记是Python解释器将你的代码分成块的方式,这样它就能理解它(见这里)。这里,当标记生成器试图分割你的代码时,它不会期望在那里看到零,因此抛出错误。
我建议(与其他答案类似)你删除前导零((2016,4,3)
)或使用字符串(("2016","04","03")
)表示这些。
解决方案
扫描二维码关注公众号,回复:
2663656 查看本文章
概述
os.makedirs() 方法用于递归创建目录。像 mkdir(), 但创建的所有intermediate-level文件夹需要包含子目录。
语法
makedirs()方法语法格式如下:
os.makedirs(path, mode=0o777)
参数
-
path -- 需要递归创建的目录。
-
mode -- 权限模式。
返回值
该方法没有返回值。
实例
以下实例演示了 makedirs() 方法的使用:
#!/usr/bin/python3 import os, sys # 创建的目录 path = "/tmp/home/monthly/daily" os.makedirs( path, 0o777 ); print ("路径被创建")
执行以上程序输出结果为:
路径被创建
参考文献:
https://stackoverflow.com/questions/36386346/syntaxerror-invalid-token