在python中是否有一种方法可以将os.path操作用于不是您当前的操作系统?

Rus*_*ber 3 python operating-system remote-access

情况:我目前正在使用paramiko做一些花哨的sftp东西,经常发现自己编译远程文件的路径名.我认为可能有一种更聪明的方式来做到这一点.问题:在python中是否有一种方法可以为不是当前操作系统的操作系统使用os.path操作?我想最后能够去remotehost.os.path."一些操作"

aba*_*ert 6

正如文档顶部的大注释所说:

由于不同的操作系统具有不同的路径名约定,因此标准库中有该模块的多个版本.os.path模块始终是适用于Python运行的操作系统的路径模块,因此可用于本地路径.但是,如果要操作始终采用不同格式之一的路径,也可以导入和使用单个模块.它们都具有相同的界面:

  • UNIX样式路径的posixpath
  • Windows路径的ntpath
  • 用于旧式MacOS路径的macpath
  • 用于OS/2 EMX路径的os2emxpath

显然,事情好像ntpath.lexists不会为POSIX系统上工作,但事情一样join,basename等会.

如果您不知道远程服务器期望的格式,并且无法解决问题,posixpath通常是一个安全的选择.sftp和Paramiko的类似功能,将始终处理POSIX路径; 如果您正在使用sshshell,cmd.exe并且许多您想要运行的命令行工具(包括Python脚本)将能够在Windows上处理它们,OS/2也是如此,当然也是如此风格的Mac甚至没有你可以使用的外壳ssh.