如何规范化 Nim 中的文件路径?
How to normalise file path in Nim?
os.normalized_path
输出 .
而不是完整路径。
import os
echo ".".normalized_path
该输出是正确的 - 它已“规范化”到当前目录,因此它是“.”,这是 *nix 上的有效路径。如果你想得到完整的路径,这样做:
import os
echo ".".normalizedPath().absolutePath()
@Yardanico 的回答仍然是正确的,但这太长了,无法留下评论。
normalizePath
不知道当前工作目录并在抽象路径上操作,保留输入是绝对的还是相对的。它的作用是:
- 删除 extra/trailing 斜杠:'foo//bar/' => 'foo/bar'
- 解决双点:'foo/../bar' => 'bar', '../foo' => '../foo'
- 删除开头的“./”:“./foo”=> 'foo'
它没有:
- 删除绝对路径中的初始双点,即 '/..' => '/..'
- 将路径定界符转换为本机 os 定界符。
- 正确处理 os9 的 idiosyncratic updirs
os.normalized_path
输出 .
而不是完整路径。
import os
echo ".".normalized_path
该输出是正确的 - 它已“规范化”到当前目录,因此它是“.”,这是 *nix 上的有效路径。如果你想得到完整的路径,这样做:
import os
echo ".".normalizedPath().absolutePath()
@Yardanico 的回答仍然是正确的,但这太长了,无法留下评论。
normalizePath
不知道当前工作目录并在抽象路径上操作,保留输入是绝对的还是相对的。它的作用是:
- 删除 extra/trailing 斜杠:'foo//bar/' => 'foo/bar'
- 解决双点:'foo/../bar' => 'bar', '../foo' => '../foo'
- 删除开头的“./”:“./foo”=> 'foo'
它没有:
- 删除绝对路径中的初始双点,即 '/..' => '/..'
- 将路径定界符转换为本机 os 定界符。
- 正确处理 os9 的 idiosyncratic updirs