如何解决不同操作系统间的文件路径问题?
我遇到了一个问题。我使用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')
如果你想把这个路径展示给用户,这样做可能会很有用,但对于这两个系统的默认文件系统来说,理解这个路径并不需要特别处理。