2014-01-13 17 views
1

我在Blender 2.69中遇到了一個問題,而在Python中使用腳本。當我嘗試在csv讀取文件,它拋出的錯誤:不允許我在攪拌器中讀入.csv文件

Traceback (most recent call last): 
    File "<blender_console>", line 1, in <module> 
FileNotFoundError: [Errno 2] No such file or directory: 'CelestialData.csv' 

的代碼是:

import csv 
... 
starsFile = csv.reader(open('CelestialData.csv','r')) 

任何幫助將不勝感激。

+0

根據您選擇的操作系統,使用'CelestialData.csv'的明確路徑(例如'C:\ Users \ Ollington \ Documents \ CelestialData.csv'或'/ home/Ollington/CelestialDatacsv')。 – senshin

+0

即使有明確的路徑,它也會拋出同樣的錯誤,真是難以忍受,感覺就像我嘗試了一切! – Ollington

+0

如果您認爲該文件存在並且Python認爲它不存在,那麼Python的可能性是正確的。在該行之前,添加'import os'和'print os.getcwd()'來查看你所在的目錄,以及'print os.listdir(「。」)'來查看那裏有哪些文件。 – DSM

回答

2

回到80年代的微軟,選擇使用"\" char作爲目錄分離,而不是其他操作系統中使用的常見"/"

問題在於"\"字符已經在C語言中使用過,並且該行爲在Python中作爲字符串內部的轉義字符被複制。因此,只要Python表達式找到包含例如序列"\t"的字符串,就會將其解釋爲單個字符,而不是分隔的"\""t"個字符(編號爲「9」的<tab>)。

有3種方式,從Python中處理這個:

  1. 使用「/」字符分隔的,無論是在Windows
  2. 使用doubleforward斜線,每次向前的目錄和文件,斜線是存在(這樣的"\\t"代替"\t",或
    "\\Documents\\CelestialData.csv"代替"\Documents\CelestialData.csv"
  3. 使用r前綴字符串的報價 - 這種方式,Python的對待後續將字符串 視爲「原始」,並且其中的所有"\"都按照字面處理,而不是從 解釋爲轉義下一個字符。例如爲:r"\Documents\CelestialData.csv"

我認爲第一種選擇將是您更輕鬆。