Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 八进制到字符串-故障_Python_String_Octal - Fatal编程技术网

Python 八进制到字符串-故障

Python 八进制到字符串-故障,python,string,octal,Python,String,Octal,我似乎无法理解在线课程中给出的这个问题的解决方案。我找到了解决它的实际代码,但我仍然不理解它。有谁能更详细地向我解释一下为什么会这样?我将不胜感激 Linux系统中文件的权限分为三组:所有者、组和其他人的读取、写入和执行权限。三个值中的每一个都可以表示为对每个权限求和的八进制数,其中4对应于读取,2对应于写入,1对应于执行。也可以在未授予权限时使用字母r、w和x或-的字符串写入。 例如: 640为所有者读/写,为组读,其他无权限;转换为字符串,它将是:“rw-r-----” 755为所有者读/写

我似乎无法理解在线课程中给出的这个问题的解决方案。我找到了解决它的实际代码,但我仍然不理解它。有谁能更详细地向我解释一下为什么会这样?我将不胜感激

Linux系统中文件的权限分为三组:所有者、组和其他人的读取、写入和执行权限。三个值中的每一个都可以表示为对每个权限求和的八进制数,其中4对应于读取,2对应于写入,1对应于执行。也可以在未授予权限时使用字母r、w和x或-的字符串写入。 例如: 640为所有者读/写,为组读,其他无权限;转换为字符串,它将是:“rw-r-----” 755为所有者读/写/执行,为集团和其他人读/执行;转换为字符串时,它将是:“rwxr-xr-x” 填空使代码将八进制格式的权限转换为字符串格式。我对for循环的行非常困惑——我只是不理解它

我在互联网上找到的Soultion(正常工作):


我相信您已经意识到,每个八进制数字(oit?octit?)对应于一组由各个权限之和给定的权限

0 = ---
1 = --x
2 = -w-
3 = -wx
4 = r--
5 = r-x
6 = rw-
7 = rwx
我们可以通过从八进制数字中减去每个权限对应的值来导出这个字符串

(6',)->(2,'r')->(0,'rw')->(0,'rw'))

至于循环行,由于
八进制
变量是一个3-(八进制)位整数,我们首先将其转换为一个字符串,分离每个字符以获得单个八进制数字,然后将它们转换回整数,以便我们可以处理它们。我们没有为每个操作编写单独的语句,而是使用列表理解来生成八进制数字列表,我们将在其上循环

0 = ---
1 = --x
2 = -w-
3 = -wx
4 = r--
5 = r-x
6 = rw-
7 = rwx