2012-03-30 23 views
1

我有這樣的代碼:不能獲得許可,保存和.xml文件到磁盤中的蟒蛇

def display(self): 
    print self.doc.toprettyxml(indent=" ") 
    strigName ='/Users/my_user/Desktop/python/' + str(datetime.datetime.now()) + '.xml' 
    print strigName 
    with open(strigName, "ws") as f: 
     f.write(self.doc.toprettyxml(indent=" ")) 

,節約和XML文件上的名字一個時間戳的路徑。問題是我只能將它保存到腳本所在的目錄中。當我嘗試將它保存在上面顯示的路徑中時,它會給我「IOError:[Errno 13]權限被拒絕:」甚至用sudo運行python腳本,而且我的用戶是Admin。怎麼了?

+0

你有完全控制該目錄嗎?這可能是訪問權限/權限的情況,或者是您正在寫入的文件已被打開或正在被另一個服務使用! – test 2012-03-30 21:02:16

+0

檢查你的路徑?你正在使用哪個操作系統,如果你使用的是sudo,我認爲它是linux?通常沒有/用戶文件夾 – 2012-03-30 21:03:31

+0

也是哪種模式是「ws」我以前沒見過它? – 2012-03-30 21:05:41

回答

1

在OS X文件名中不允許冒號。 str(datetime.datetime.now())'2012-03-30 14:20:46'

你可以使用它之前替換破折號冒號在字符串中,或​​使用類似time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())而不是datetime.datetime.now()

+0

Colons *在Mac OS X文件名中允許在POSIX層中使用。 'touch〜/冒號:冒號':-) – kindall 2012-03-30 23:00:38

+0

@kindall Finder中顯示的是什麼? – 2012-03-30 23:07:02

+0

在Finder中,它顯示爲'/',當然,這很奇怪,因爲Finder似乎不再喜歡用冒號分隔的文件名。 :-) – kindall 2012-03-30 23:14:44