2010-07-24 81 views
11

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

例如,Windows会是这样的:

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

我将如何从保存在一台Mac的桌面文件夹访问的东西吗?

回答

9

桌面只是用户主目录的子目录。由于后者不是固定的,请使用类似os.path.expanduser的代码来保持代码的通用性。例如,读取一个叫somefile.txt驻留在桌面上的文件,使用

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

如果你想这是跨操作系统移植,你必须找出桌面目录分别位于每个系统上。

+0

_“如果您希望它可以跨操作系统移植”_ ...您还需要更正路径分隔符,例如从'/'改为' \'如果你去了Windows,看到我的答案。 – 2016-11-22 11:44:45

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

甚至更​​好

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

因为在庆典(在Mac OS X中的默认的shell)~/表示用户的主目录。

+0

“因为在* nix系统'〜/'表示用户的主目录。” - 这是不对的,它只是流行的shell如bash所使用的一个约定。试图打开'〜/ somefile.txt'会在当前目录内寻找一个叫做'〜'的目录。 – Philipp 2010-07-24 09:12:46

+0

已更正,谢谢 – 2010-07-24 09:13:59

+1

它没有更正 - 'openn永远不会扩展'〜',它永远不会使用shell。尝试'open(“〜/ somefile.txt”,“w”)' - 除非你有一个名为'〜'的目录,否则它将无法创建文件。 – Philipp 2010-07-24 09:17:54

0

你在一个的Mac工作,所以像"a/b/c.text"路径是好的,但如果您使用的Windows 以后,你就必须改变所有的'/''\'。如果你想更便携和平台无关的,从一开始,你最好使用os.path.join操作:

import os 

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

f = open(filePath)