问题 在Mac上查找文件的目录地址


我正在使用Macbook编程python。我想知道的是我如何使用Python的文件功能访问某些文件。谷歌搜索失败了我。

例如,Windows将是这样的:

f = open(r'C:\text\somefile.txt')

我如何从Mac桌面上保存的文件夹中访问某些内容?


6865
2017-07-24 09:06


起源



答案:


桌面只是用户主目录的子目录。因为后者不是固定的,所以使用类似的东西 os.path.expanduser 保持代码通用。例如,要读取一个名为的文件 somefile.txt 驻留在桌面上,使用

import os
f = open(os.path.expanduser("~/Desktop/somefile.txt"))

如果您希望它可以跨操作系统移植,则必须分别找出每个系统上桌面目录的位置。


10
2017-07-24 09:10



“如果你希望它可以跨操作系统移植” ...你还需要更正路径分隔符,例如,如果你转到Windows,则从'/'到'\'。看到我的回答。 - Massimiliano Kraus


答案:


桌面只是用户主目录的子目录。因为后者不是固定的,所以使用类似的东西 os.path.expanduser 保持代码通用。例如,要读取一个名为的文件 somefile.txt 驻留在桌面上,使用

import os
f = open(os.path.expanduser("~/Desktop/somefile.txt"))

如果您希望它可以跨操作系统移植,则必须分别找出每个系统上桌面目录的位置。


10
2017-07-24 09:10



“如果你希望它可以跨操作系统移植” ...你还需要更正路径分隔符,例如,如果你转到Windows,则从'/'到'\'。看到我的回答。 - Massimiliano Kraus


f = open (r"/Users/USERNAME/Desktop/somedir/somefile.txt")

甚至更好

import os
f = open (os.path.expanduser("~/Desktop/somedir/somefile.txt"))

因为在bash上(Mac Os X上的默认shell) ~/ 代表用户的主目录。


5
2017-07-24 09:10



“因为在* nix系统上 ~/ 表示用户的主目录。“ - 这是错误的,它只是bash等流行shell使用的约定。试图打开 ~/somefile.txt 将寻找一个名为的目录 ~ 在当前目录中。 - Philipp
纠正了,谢谢 - Federico klez Culloca
它没有得到纠正 - open 从不扩大 ~,它从不使用shell。尝试 open("~/somefile.txt", "w")除非您有一个名为的目录,否则将无法创建该文件 ~。 - Philipp
纠正,但现在我的答案几乎与你的答案相同:-( - Federico klez Culloca


你正在努力 苹果电脑 路径就像 "a/b/c.text" 很好,但如果你使用 视窗 在未来,你将不得不改变所有 '/' 至 '\'。如果你想从一开始就更加便携和平台无关,你最好使用 os.path.join 运营商:

import os

desktop = os.path.join(os.path.expanduser("~"), "Desktop")
filePath = os.path.join(desktop, "somefile.txt")

f = open(filePath)

0
2017-11-22 11:39