2024-05-28 23:54:05 发布
网友
我在找一个类似Python的Bashos.path.join操作系统. 我试图提示用户输入一个目录路径,然后将使用该路径(在等效路径连接的帮助下)执行其他操作。在
您可能正在查找readlink命令。可以使用readlink -m "some/path"将路径转换为规范路径格式。不完全是路径.连接但它确实提供了类似的功能。在
readlink
readlink -m "some/path"
编辑:正如有人向我指出的readlink实际上更像{}。它也是一个GNU扩展,并非所有*nix系统都可用。我将把我的答案留在这里,以防它在某些方面仍有帮助。在
在bash脚本中使用"${dirpath}/${filename}"是非常安全的。在
bash
"${dirpath}/${filename}"
bash只理解POSIX样式的路径名。即使您在Windows上构建了MinGW/native bash。这意味着/始终是路径分隔符。这意味着在一行中放两个斜杠是没有坏处的,所以即使$dirpath碰巧以'/'结尾,一切都很好。在
/
$dirpath
例如:
$ cat join.sh #!/bin/bash echo -n 'Path: ' read dirpath echo -n 'Filename: ' read filename ls -l "${dirpath}/${filename}" $ ./join.sh Path: /etc/ Filename: hosts -rw-r r 1 root wheel 236 Sep 15 2014 /etc/hosts
在Python中,仅以这种方式使用/是不安全的。Python在POSIX和类似POSIX的系统上处理本机格式路径名,但在Windows上也处理本机格式路径名。*,其中路径分隔符是\,两个反斜杠在某些地方有特殊的含义,您需要担心驱动器号等等。因此,您必须使用os.path.join进行移植。在
\
os.path.join
*它还提供了经典Mac(使用冒号)、VMS(它混合了您不想知道的不同东西)等的代码,如果您使用的是一个足够旧的Python。
您可能正在查找
readlink
命令。可以使用readlink -m "some/path"
将路径转换为规范路径格式。不完全是路径.连接但它确实提供了类似的功能。在编辑:正如有人向我指出的}。它也是一个GNU扩展,并非所有*nix系统都可用。我将把我的答案留在这里,以防它在某些方面仍有帮助。在
readlink
实际上更像{在
bash
脚本中使用"${dirpath}/${filename}"
是非常安全的。在bash
只理解POSIX样式的路径名。即使您在Windows上构建了MinGW/nativebash
。这意味着/
始终是路径分隔符。这意味着在一行中放两个斜杠是没有坏处的,所以即使$dirpath
碰巧以'/'结尾,一切都很好。在例如:
在Python中,仅以这种方式使用
/
是不安全的。Python在POSIX和类似POSIX的系统上处理本机格式路径名,但在Windows上也处理本机格式路径名。*,其中路径分隔符是\
,两个反斜杠在某些地方有特殊的含义,您需要担心驱动器号等等。因此,您必须使用os.path.join
进行移植。在*它还提供了经典Mac(使用冒号)、VMS(它混合了您不想知道的不同东西)等的代码,如果您使用的是一个足够旧的Python。
相关问题 更多 >
编程相关推荐