2015-04-02 906 views
13

使用pandas read_csv()方法時,它保持打開文件還是關閉文件(放棄文件描述符)?Python pandas - read_csv是否保持文件打開?

如果它保留它,在完成使用數據框之後如何關閉它?

+0

你可以期待每個正確設計的讀取方法打開一個文件描述符也會在返回之前關閉它。 – cel 2015-04-02 15:41:32

+1

那是我的預期,我只是想確定.. – nivniv 2015-04-02 15:42:55

+0

我也預料到了,但我得到了驚喜。我無法解釋爲什麼Windows告訴我,我不能移動這個文件,因爲python拿着它...(但也許它是spyder,àpython Ide ...) – 2016-08-26 11:59:03

回答

7

如果你傳遞一個打開的文件,它會保持打開(從當前位置讀取),如果你傳遞一個字符串,那麼read_csv將打開和關閉文件。


在Python中,如果你打開一個文件,但忘記關閉它,蟒蛇將在功能塊的結尾爲你關閉它(垃圾收集過程中)。

def foo(): 
    f = open("myfile.csv", "w") 
    ... 
    f.close() # isn't actually needed 

即如果你調用它打開一個文件,除非返回的文件對象Python函數,該文件是自動神奇 matically關閉。

注:優選的語法是與塊(其,以及閉合˚F在的與塊結束時,只定義了內部的與塊的F變量):

def foo(): 
    with open("myfile.csv", "w") as f: 
     ...