2016-07-09 57 views
0

我是Python的新手。我無法在iPython shell中打開我的csv文件,儘管我可以在Spyder中打開我的文件。我怎樣才能保存一個csv或任何其他文件,以供Spyder和iPython使用?如何保存csv文件,以便iPython shell可以打開並使用它?

例如,我試過開放和讀取文件

DATA_data = open('Data.csv') 

DATA_reader = (pd.read_csv(Data), ',') 

print DATA_reader 

,我會得到這個錯誤信息:

IOError: [Errno 2] No such file or directory: 'Data.csv' 

另外,我怎麼能確保CSV文件是在與我的Python腳本相同的導演?

+1

請編輯你的問題,包括你已經嘗試過。 –

+0

如果您使用的是熊貓,請將該標記置於您的問題或其他包中 –

+1

您確定文件Data.csv與python腳本位於完全相同的目錄中嗎? –

回答

1

A csv文件是純文本,所以幾乎任何代碼都可以讀取它。通過ipython,你可以用shell命令,Python閱讀,或者numpy或pandas閱讀它。

知道文件位於何處的第一個問題。這是一個文件系統問題 - 目錄是什麼。在ipython中,您可以使用%pwd魔術查看當前目錄,並使用%cd更改目錄。 %ls給出了目錄列表。通過magics,您可以使用linux shell(如bash)(以及帶有一些術語調整的窗口)的所有文件和目錄操作。

一旦找到,你可以看看與%cat

例如文件:

In [26]: %pwd 
Out[26]: '/home/paul' 
In [27]: %ls 
~/ Desktop/ Downloads/ mypy/  Public/  Videos/ 
bin/ Documents/ Music/  Pictures/ Templates/ 
In [28]: %cd mypy 
/home/paul/mypy 
In [29]: %ls test* 
test  test2.hdf test.h5 test.ipy test.mat test.npz 
test1.hdf test.gz test.hdf5 testipy.py test.npy test.txt 
In [30]: %cat test 
     one   a   1 
     two   b   2 
    three   c   3 

普通的Python閱讀:

In [34]: f=open('test') 
In [35]: f.read() 
Out[35]: '  one   a   1\n  two   b   2\n  three   c   3\n' 
In [36]: f.close() 

np.genfromtxt是最強大的numpy CSV閱讀:

In [38]: np.genfromtxt('test',dtype=None) 
Out[38]: 
array([(b'one', b'a', 1), (b'two', b'b', 2), (b'three', b'c', 3)], 
     dtype=[('f0', 'S5'), ('f1', 'S1'), ('f2', '<i4')]) 

在這種情況下,我得到了一個結構化dtype的1d數組 - 因爲字符串和數字列的組合。在這種情況下,我的分隔符是空格。

loadtxt

In [40]: np.loadtxt('test',dtype='str') 
Out[40]: 
array([["b'one'", "b'a'", "b'1'"], 
     ["b'two'", "b'b'", "b'2'"], 
     ["b'three'", "b'c'", "b'3'"]], 
     dtype='<U8') 

我沒有pandas本機上安裝所以不能證明,但我認爲data = pd.read_csv('data.csv', delimiter=',')應該是足夠了(即文件名和分隔符)。

相關問題