Python pandas - read_csv是否保持文件打开?

niv*_*niv 17 pandas

使用pandas read_csv()方法时,是保持文件打开还是关闭它(丢弃文件描述符)?

如果保留它,在完成数据帧后如何关闭它?

And*_*den 16

如果你传递一个打开的文件它将保持打开状态(从当前位置读取),如果你传递一个字符串然后read_csv将打开并关闭该文件.


在python中,如果你打开一个文件但是忘了关闭它,python会在功能块的末尾为你关闭它(在垃圾收集期间).

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

即如果你调用一个打开文件的python函数,除非返回文件对象,文件将自动神奇地关闭.

注意:首选语法是with块(在块f的末尾关闭,仅在块内with定义f变量with):

def foo():
    with open("myfile.csv", "w") as f:
        ...
Run Code Online (Sandbox Code Playgroud)