Linux 与 Windows 路径库 / OS 模块

Linux vs. Windows Pathlib / OS Module

我是程序员的新手,我 90% 的编程都是在数据分析师中进行的 space。我的大部分工作是使用 Pandas 包读取 csv 或 excel 文件。我在几台不同的机器上编程并使用 Dropbox 来同步 csv 文件,然后 Github 来管理代码端(不是 csv 文件)。 csv 文件需要保留在 Dropbox 上,因为数据的其他用户也会读取它们。根据我使用的计算机(工作 Mac 与家庭 Ubuntu),使用 OS 模块(类似这样的东西)读取不同计算机上的 csv 文件很容易 os.chdir(os.path.join(os.getenv('HOME'), 'Dropbox/etc/etc))

无论 Mac 或 Linux 机器如何,只要 Dropbox 在默认安装位置即可。

我最近开始使用 Windows 电脑。我的问题 - 使用 Linux & Windows 机器的人如何处理这个问题?我似乎找不到用 Windows 机器提取 csv 文件的等效方法。我在 WSL 周围搜索过,但未能找到解决方案。

目标是编写与 OS 无关的代码。任何帮助将不胜感激!

跨平台工作的最佳方式如下

import os

os.path.expanduser('~/Dropbox/etc/etc')

此命令会自动将 '~' 扩展到您的主目录。

如果您想使用 pathlib,您可以使用 Path.home() 获取用户的主目录,或者您可以扩展相对于用户主目录的给定路径。

>>> from pathlib import Path
>>> Path.home()
PosixPath("/home/username")                            # linux
WindowsPath("C:\Users\Username")                     # windows
>>> Path("~/Dropbox/etc/etc").expanduser()
PosixPath("/home/username/Dropbox/etc/etc")            # linux
WindowsPath("C:\Users\Username\Dropbox\etc\etc")  # windows