编程题: 自己实现bash realpath (化简绝对路径)
时间: 2024-05-07 07:22:41 浏览: 120
实现bash realpath的方法有很多,下面提供一种简单的实现思路:
1. 使用split('/')函数将绝对路径按照'/'分割成一个列表。
2. 遍历列表,对于每个非空字符串,如果是'.',则跳过;如果是'..',则将上一个非'..'字符串从结果列表中删除;否则将该字符串添加到结果列表中。
3. 如果原始路径以'/'结尾,则将结果列表中添加一个空字符串。
4. 将结果列表中的字符串用'/'连接起来,得到化简后的绝对路径。
示例代码如下:
```python
def realpath(path):
parts = path.split('/')
result = []
for part in parts:
if not part or part == '.':
continue
elif part == '..':
if result:
result.pop()
else:
result.append(part)
if path.endswith('/'):
result.append('')
return '/' + '/'.join(result)
```
测试:
```python
print(realpath('/usr/local/./bin/'))
print(realpath('/usr/local/../bin/'))
print(realpath('/usr/local/bin/'))
```
输出:
```
/usr/local/bin
/usr/bin
/usr/local/bin
```
阅读全文