我在我编写的各种脚本上运行了2to3工具,以了解我需要修改什么才能将它们移植到Python 3(虽然我最终会手工操作)。
在这样做时,我遇到了一个在我的脚本中进行的2到3的奇怪更改:
-def open_pipe(pipe, perms=0644):
+def open_pipe(pipe, perms=0o644):嗯..。为什么2到3在我的"perms“整数中间添加"o”?
这是原始源代码中的第41行:https://github.com/ksoviero/Public/blob/master/tempus.py
发布于 2014-06-12 14:42:22
尝试在您的0644 shell中键入python2。它会给你一个不同的数字,因为它是octal。在python3中,0o表示octal数字。
python2
>>> 0644
420
>>> python3
>>> 0644
File "<stdin>", line 1
0644
^
SyntaxError: invalid token
>>> 0o644
420
>>> 八进制文字不再是0720形式,而是使用0o720。
发布于 2014-06-12 14:44:47
八进制文字不再是
0720的形式,而是使用0o720。
发布于 2014-06-12 14:43:59
在Python3中不再允许使用单一0前缀的旧八进制符号。
$ python
Python 2.7.3 (default, Dec 18 2012, 13:50:09)
>>> 0644
420
>>>
$ python3
Python 3.2.3 (default, Jul 23 2012, 16:48:24)
>>> 0644
File "<stdin>", line 1
0644
^
SyntaxError: invalid token
>>> 0o644
420根据上述文件,上述链接如下:
八进制文字不再是
0720的形式,而是使用0o720。
https://stackoverflow.com/questions/24187248
复制相似问题