如何解决不同操作系统间的文件路径问题?

0 投票
2 回答
36 浏览
提问于 2025-04-12 14:11

我遇到了一个问题。我使用GitHub来同步我在工作电脑(Windows)和家里电脑(Mac)上的代码。我的代码里面有一些命令,用来把生成的图保存到一个文件夹里(这个文件夹是在Git仓库里面的)。可惜的是,Windows和Mac的文件路径写法不一样:

    file = str(name)
    file_name = f'./images/' + file + '.png'
    plt.savefig(file_name, format='png')

在Windows上,我用的是这段代码:

    file = str(name)
    file_name = f'./images/' + file + '.png'
    plt.savefig(file_name, format='png')

而在Mac上,应该是这样写:

   file = str(name)
    file_name = f'.\images' + file + '.png'
    plt.savefig(file_name, format='png')

我该怎么做才能让它们统一,不用每次都去改路径呢?

2 个回答

1

使用 os.sep

import os
file = str(name)
file_name = f'.{os.sep}images{os.sep}{file}.png'
plt.savefig(file_name, format='png')
2

Windows和MacOS默认都可以用/作为路径分隔符。也就是说,直接用/来分隔路径在这两个系统上都能正常工作。

另外,你也可以使用os.path或者pathlib.Path,它们会自动处理这个问题,使用各自系统推荐的分隔符来创建路径。

import os
file_name = os.path.join('.', 'images', file + '.png')

如果你想把这个路径展示给用户,这样做可能会很有用,但对于这两个系统的默认文件系统来说,理解这个路径并不需要特别处理。

撰写回答