每个平台的Python本地文件夹路径

时间:2016-02-08 14:03:34

标签: python directory

我的脚本在特殊文件夹中工作,其名称为"折叠"。 在不同的计算机和操作系统上,此文件夹的路径是不同的。 例如,在Mac上它将:" / Users / user / Fold"。在Windows上 - " C:\ Users \ user \ Desktop \ Fold" 。 如何在我的Python脚本中输入此文件夹的路径以在每个平台上工作?如果脚本只能在#34; Fold"内部进行操作,我应该在脚本中输入什么内容?文件夹?

3 个答案:

答案 0 :(得分:1)

os模块具有识别各种操作系统的功能

您可以在代码中

执行此操作

import os

if os.name == 'nt'
    # do something nt stands for windows
    path = 'C:\Users\user\Desktop\Fold'
elif os.name == 'posix'
    # linux or mac
    path = '/home/user/Desktop/Fold'

平台模块提供了比os模块更多的细节,os可能会在我的linux机器平台上输出linux和mac的posix输出这个

import platform

>>> print(platform.system())
Linux
>>> print(platform.release())
3.13.0-76-generic

platform.system()应该返回达尔文'对于mac

答案 1 :(得分:0)

您可以使用

import sys
import os
sys.platform == "win32":
    fold = os.path.join("C:", "Users", "user", "Desktop", "Fold")
elif sys.platform == "Darwin":
    fold = os.path.join("/Users", "user", "Fold")
else:
    ...

或者您可以在每台计算机上设置一个环境变量,如果它在同一个操作系统中发生变化。

答案 2 :(得分:0)

您可以通过os.path.expanduser("~")获取用户文件夹(Mac:/Users/user,Win:C:\Users\user\)的路径。从那里开始,您的实现似乎特定于操作系统 - 可能只有Windows实现将其数据放在桌面上。由于您可以通过sys.platform获取平台标识符,因此您可以执行以下操作:

import sys, os
folderPath = os.path.join("Desktop", "Fold") if sys.platform == "win32" else "Fold"
fullPath = os.path.join(os.path.expanduser("~"), folderPath)

如果您想使用其他系统上桌面文件夹的路径,请参阅Cross-platform Desktop directory path?