2015-04-02 7 views
13

При использовании метода pandas read_csv() он сохраняет файл открытым или закрывает его (отбрасывает дескриптор файла)?Python pandas - Открывает ли файл read_csv файл?

Если он хранит его, как его закрыть после того, как я закончил использовать dataframe?

+0

Вы можете ожидать что каждый правильно разработанный метод чтения, который открывает дескриптор файла, также закрывает его перед возвратом. – cel

+1

То, что я ожидал, я просто хотел быть уверенным. – nivniv

+0

Я тоже ожидал этого, но у меня были сюрпризы. Я не могу объяснить, почему Windows говорит мне, что я не могу переместить этот файл, потому что python держит его ... (но, возможно, это spyder, à python Ide ...) –

ответ

7

Если вы передадите его открытому файлу, он будет держать его открытым (чтение из текущей позиции), если вы передадите строку, тогда read_csv откроет и закроет файл.


В питона, если открыть файл, но забудьте закрыть его, питон будет закрыть его для вас в конце функционального блока (во время сборки мусора).

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

т.е. при вызове функции питона, которая открывает файл, если объект файла не возвращается, файл автоматически волшебно чески закрыто.

Примечание: Предпочтительный синтаксис с блоком (который, а также закрытие е на конце с блоком, определяет переменную ф только внутри с блоком):

def foo(): 
    with open("myfile.csv", "w") as f: 
     ... 
Смежные вопросы