我正在用 Python3 编写一些软件,旨在备份 Windows 客户端上的目录结构,并将其发送到 Linux 服务器。
我遇到的问题是如何处理 Windows 和 Linux 文件路径。我需要 Windows 客户端创建一个表示源文件相对路径的对象,将该相对路径发送到服务器,以便服务器知道将文件写入目标文件夹中的哪个子目录,然后发送实际数据。
发送实际数据不是问题,但是如何将 Windows 相对路径发送到 Linux 系统?我尝试将其作为字符串使用os.path
,但很快就变得一团糟。我正在考虑使用pathlib
.
如果我可以创建某种路径对象,我可以使用 pickle 对其进行序列化,并将其发送到服务器。我会使用 pathlib 中的什么对象来表示路径?
Path()
似乎创建了一个适用于当前文件系统(PosixPath
或WindowsPath
)的类的实例,这些文件系统不可移植。如果我WindowsPath
在 Windows 客户端上创建一个对象,Linux 将无法反序列化它,因为您甚至无法WindowsPath
在 Linux 系统上实例化一个对象。
看起来我可以使用一个PureWindowsPath
对象,并将其发送到 Linux,但是如何将PureWindowsPath
对象(表示相对路径)转换为 aPosixPath
或至少 a PurePosixPath
?
那可能吗?还是我认为这一切都错了?