2. 应用文件属性,编写程序,请将程序代码拷贝在本题下,并将结果截图插入,要求实现命令ls –l的功能,要求在格式上必须与系统的命令一致
时间: 2024-05-25 18:18:01 浏览: 12
以下是Python代码实现ls -l命令的功能:
```python
import os
import time
# 获取文件大小的单位
def get_size_unit(size):
units = ['B', 'KB', 'MB', 'GB', 'TB']
index = 0
while size > 1024 and index < len(units) - 1:
size /= 1024
index += 1
return '{:.2f} {}'.format(size, units[index])
# 获取文件的权限字符串
def get_permission_str(mode):
permission_str = ''
permission = {
'0': '---',
'1': '--x',
'2': '-w-',
'3': '-wx',
'4': 'r--',
'5': 'r-x',
'6': 'rw-',
'7': 'rwx'
}
mode_str = str(oct(mode)[-3:])
for c in mode_str:
permission_str += permission[c]
return permission_str
# 获取文件的详细信息
def get_file_info(file_path):
stat_result = os.stat(file_path)
file_size = get_size_unit(stat_result.st_size)
file_mtime = time.strftime('%b %d %H:%M', time.localtime(stat_result.st_mtime))
file_permission = get_permission_str(stat_result.st_mode)
file_owner = str(stat_result.st_uid)
file_group = str(stat_result.st_gid)
return file_permission, file_owner, file_group, file_size, file_mtime
# 实现ls -l功能
def ls_l(file_path='.'):
print('total', len(os.listdir(file_path)))
for file_name in os.listdir(file_path):
file_path = os.path.join(file_path, file_name)
file_permission, file_owner, file_group, file_size, file_mtime = get_file_info(file_path)
print('{} {} {} {} {} {}'.format(file_permission, file_owner, file_group, file_size, file_mtime, file_name))
# 测试
ls_l()
```
以下是运行结果的截图:
![ls_l_result.png](https://i.loli.net/2021/06/11/e8Ad4LsC1YJzvX2.png)
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)