2017-05-08 106 views
0

对于这个问题的简单性,我表示歉意。我正在学习使用python进行编程,而我最近的任务是学习如何使用文件。不幸的是,我似乎无法正确构造一条路径语句来打开特定的文件。为了让事情变得更有趣,我是bi-OS-usal。我在MacOS和Windows上工作。什么是Windows上文件的根路径?在MacOS上?

我使用“OS”模块中的蟒蛇生成要么OS上运行的操作系统特定的路径试过,但我继续得到FileNotFoundError。这是我在Mac上试过的。请注意,该文件的路径位于我的目录toddb下的用户文件夹中的主驱动器(Macintosh HD)上。文件名是st.txt

import os 
path = os.path.join("Users", "toddb", "st.txt") 
stlaunch = open(path, "r") 

在这一点上,我得到:

FileNotFoundError: [Errno 2] No such file or directory: 

因为我没有明确规定的根驱动器我也试过:

path = os.path.join("Macintosh HD", "Users", "toddb", "st.txt") 

同样的错误,当我运行我的代码。

回答

0

根目录名为/。把它放在开头:

path = os.path.join("/", "Users", "toddb", "st.txt") 
2

OSX有一个叫做/的根。 Windows有多个根(驱动器),例如,C:\\。在python中,你可以像C:/那样引用带有正斜杠的窗口路径。

在这两种情况下,即使用户目录有一个默认的位置,他们可以移动,使得任何硬性规则困难。这些操作系统通常将主目录放入环境变量中,您可以将它们缝合在一起以找到您的家。

的Python也有os.path.expanduser功能,做繁重的你。 expanduser('~')展开当前用户的主目录,`expanduser('〜otheruser')获取其他目录。把它放在一起,你可以做

path = os.path.join(os.path.expanduser('~'), "st.txt") 
+0

内部,Windows还具有一个''\''根,但对物体的命名空间而不是文件系统。它是由系统和驱动程序而不是用户使用的。它有一些固定的目录和对象名称以及大量自动编号和GUID名称。常见的设备名称是符号链接,例如“C:”驱动器是'\ Global ?? \ C:'=>'\ Device \ HarddiskVolume [N]',其中[N]可以是任何数字,但通常为1或2,HKLM注册表配置单元为' \注册\ Machine'。 – eryksun

+0

感谢您的支持!很有帮助。不幸的是,我仍然收到文件未找到错误。这里是我的最新版本: 'code' >>> path = os.path.join(os.path.expanduser(“〜”),“Python.txt”) >>> path 'C:\\ Users \ \ Todd \\ OneDrive \\ Documents \\ Python \\ Python.txt' >>> stlaunch = open(path,“r”) 回溯(最近一次调用最后一次): 文件“”,第1行,in stlaunch =开放(路径, “R”) FileNotFoundError:[错误2]没有这样的文件或目录: 'C:\\用户\\托德\\ Python.txt' – Boringo

相关问题