首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写python代码将linux读、写和执行八进制格式转换为字符串。

编写python代码将linux读、写和执行八进制格式转换为字符串。
EN

Stack Overflow用户
提问于 2020-05-19 00:40:46
回答 7查看 18.6K关注 0票数 3

Linux系统中文件的权限分为三组权限:所有者、组和其他权限的读、写和执行。这三个值中的每一个都可以表示为一个八进制数,与每个权限相加,其中4个对应于读,2个对应于写入,1个对应于执行。也可以使用字母r、w和x或-在未授予权限的情况下使用字符串编写。例如: 640为所有者读/写,为组读取,对其他人没有权限;转换为字符串,它将是:“rw-r-”755为所有者读取/写入/执行,为组和其他人读取/执行;转换为字符串,将“rwxr-xr”填入空格,使代码将八进制格式的权限转换为字符串格式。

代码语言:javascript
复制
def octal_to_string(octal):
  result = ""
  value_letters = [(4,"r"),(2,"w"),(1,"x")]
  # Iterate over each of the digits in octal
  for ___ in [int(n) for n in str(octal)]:
      # Check for each of the permissions values
      for value, letter in value_letters:
          if ___ >= value:
              result += ___
              ___ -= value
          else:
              ___
  return result

print(octal_to_string(755)) # Should be rwxr-xr-x
print(octal_to_string(644)) # Should be rw-r--r--
print(octal_to_string(750)) # Should be rwxr-x---
print(octal_to_string(600)) # Should be rw-------

请帮我解决这个问题

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2020-05-19 01:04:19

  • 是一种更简单的方法。

def octal_to_string(八进制):权限=“--”、“-x”、"-w-“、"-wx”、“r-”、"r-x“、"rw-","rwx“___ =”rwx“结果在+= permission___返回结果打印(octal_to_string(755))、print(octal_to_string(644))、print(octal_to_string(750))、print(octal_to_string(600)) (octal_to_string(600))

根据你的逻辑,

def octal_to_string(八进制):value_letters =“value_letters= (4,"r"),(2,"w"),(1,"x") #迭代在str(八进制)中的int(n)中___的每一个八进制数字上:#检查每个权限值的值,字母in value_letters: if ___ >= value:___ += ___ -= value letter : result += "-“返回结果打印(octal_to_string(755))打印(octal_to_string(644))打印(octal_to_string(750))

票数 4
EN

Stack Overflow用户

发布于 2020-07-11 02:20:02

代码语言:javascript
复制
def octal_to_string(octal):
 result = ""
 value_letters = [(4,"r"),(2,"w"),(1,"x")]
 # Iterate over each of the digits in octal
 for i in [int(n) for n in str(octal)]:
    # Check for each of the permissions values
    for value, letter in value_letters:
        if i >= value:
            result += letter
            i -= value
        else:
            result += '-'
 return result
票数 2
EN

Stack Overflow用户

发布于 2021-02-04 19:59:32

代码语言:javascript
复制
def octal_to_string(octal):
    result = ""
    value_letters = [(4,"r"),(2,"w"),(1,"x")]
    # Iterate over each of the digits in octal
    for x in [int(n) for n in str(octal)]:
        # Check for each of the permissions values
        for value, letter in value_letters:
            if x >= value:
                result += letter
                x -= value
            else:
                result += "-"
    return result
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61881343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档