Linux 系统中文件的权限分为三组,每组三种权限:所有者、组和其他人的读、写和执行。这三个值中的每一个都可以表示为对每个权限求和的八进制数,其中 4 对应于读取,2 对应于写入,1 对应于执行。或者,如果未授予权限,则可以使用字母 r、w 和 x 或 - 编写字符串。例如:640是所有者读/写,组读,其他无权限;转换为字符串,它将是: "rw-r-----"755 对所有者是读/写/执行,对组和其他人是读/执行;转换成字符串,就是:"rwxr-xr-x"填空,使代码把八进制格式的权限转换成字符串格式。
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-------
请帮我解决这个问题
最佳答案
更简单的方法。
def octal_to_string(octal): permission = ["---", "--x", "-w-", "-wx", "r--", "r-x", "rw-", "rwx"] result = "" # Iterate over each of the digits in octal for ___ in [int(n) for n in str(octal)]: result += permission[___] return result print(octal_to_string(755)) print(octal_to_string(644)) print(octal_to_string(750)) print(octal_to_string(600))
根据你的逻辑。
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 += letter ___ -= value else: result += "-" return result print(octal_to_string(755)) print(octal_to_string(644)) print(octal_to_string(750)) print(octal_to_string(600))
关于python - 编写python代码将linux读、写、执行八进制格式转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61881343/