2014-07-05 32 views
0

中創建文件我試圖在python3.4中運行腳本& windows 8。python 3.4 windows 8.1無法在C:

它與Windows 7很好地工作,但現在,在Windows 8.1中它不能寫入C:中的文件,可能會被拒絕訪問。 如果我改變了目錄,例如用戶/ XXX它的工作原理,但我不知道如何在C做「寫」:

with open('C:/xxxx.csv', 'r') as csvfile: 

Traceback (most recent call last): 
    File "C:\Python34\Scripts_jmab\csv_to_shp.py", line  12, in <module> 
    urllib.request.urlretrieve(a,filename)  
    File "C:\Python34\lib\urllib\request.py", line 188, in urlretrieve 
    tfp = open(filename, 'wb') 
OSError: [Errno 22] Invalid argument: 'C:/xxxxx.csv' 

感謝

+0

你能在Python之外的C:\''中創建一個文件嗎?如果你不能在那裏做,你將無法通過Python ... – MattDMo

+0

嗨我可以創建一個文件夾,但不是一個文件 – kamome

+0

我認爲贏得8.1不允許你直接在C中創建一個文件: – user2963623

回答

0

由於Windows安全設置,用戶不允許在根目錄C:\文件夾中創建文件,因爲一些重要的系統文件駐留在那裏,可能會受到病毒的攻擊。雖然可以禁用此功能,但最簡單(也是最安全)的解決方案是爲程序創建一個目錄,以便將它們的輸出文件放入。C:\TEMP是一個很好的位置(如果它尚不存在,您可以創建它),或者您可以製作另一個根據您自己的選擇命名的文件夾。

+0

謝謝。這是我會做的。然後,我必須爲win 7創建腳本,爲win8創建另一個腳本。 – kamome

+0

@kamome - 寫入''C:\''在任何版本的Windows上通常都是壞主意,所以我建議使用兩個臨時目錄。 – MattDMo