2017-09-07 518 views
0

最近,我有一個項目是將一些數據保存爲csv文件並將其保存在絕對路徑中。 這是我的代碼。如何將csv文件保存到特定路徑?

import csv 
a=[1,2,3,4,5,6,7,8,9] 
with open("C:/test.csv","w") as f: 
    writer = csv.writer(f) 
    writer.writerows(a) 

但這樣表示

Traceback (most recent call last): 
    File "C:/Users/rickchen/Desktop/save1.py", line 3, in <module> 
    with open("C:/test.csv","w") as f: 
IOError: [Errno 13] Permission denied: 'C:/test.csv' 

一些錯誤可以在任何高手幫幫我嗎?非常感謝您^ _^

+2

任何主或非主可以告訴你,你不使用Windows 3.1:除非您擁有提升的權限,否則無法寫入C驅動器的根目錄。這不是一個python問題 –

+2

非主人在這裏說話。您沒有該目錄的寫入權限。使用不同的。 –

+0

如何寫入權限? –

回答

0

您可能沒有寫入權限來寫入您的C驅動器的根目錄。您有幾種方法可供選擇:

  1. 以管理員權限運行Python。這顯然取決於你如何運行你的腳本。例如,如果您啓動命令提示符並在其中運行腳本,請右鍵單擊它並選擇「以管理員身份運行」。

  2. 使用Windows爲您的用戶帳戶寫入訪問您的C:\根文件夾。

  3. 可能確保輸出文件尚未在另一個應用程序中打開。

  4. 理想情況下,您應該寫入更適合的文件夾。例如,將輸出寫入您的Desktop或您的Documents文件夾很簡單。

你的腳本可以作如下更新:

import csv 
import os 

a = [1, 2, 3, 4, 5, 6, 7, 8, 9] 

filename = os.path.join(os.environ["HOMEDRIVE"], os.environ["HOMEPATH"], "Desktop", "test.csv") 

with open(filename, "wb") as f: 
    writer = csv.writer(f) 
    writer.writerow(a) # Or use writer.writerows([row] for row in a) for one per line 

os.environ["HOMEDRIVE"]os.environ["HOMEPATH"]會給你的用戶的主文件夾,無論是增加還是DesktopDocuments會給你一個合適的路徑。 os.path.join()用於安全的各個位,加上適當的分隔給你一個文件名,例如加入:

C:\Users\Fred\Desktop\test.csv 

這裏假設你正在使用Python 2.x的