Python文件读写

作者: Jeff_9021 | 来源:发表于2020-01-08 17:04 被阅读0次

    常见的读写操作:

    with open(r'filename.txt') as f:

        data_user=pd.read_csv(f)  #文件的读操作

    with open('data.txt', 'w') as f:

        f.write('hello world')  #文件的写操作

    Python内置了读写文件的函数,用法和C是兼容的。本节介绍内容大致有:文件的打开/关闭、文件对象、文件的读写等。仅示例介绍 TXT 类型文档的读写,也就是最基础的文件读写,也需要注意编码问题;

    open()   close()     with open(...) as ...

    看以下示例就能了解 Python 的 open() 及 close() 函数。这边调用 read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示,具体使用参见下文。

    在 E 盘 python_file 文件夹下新建一 a.txt,输入随意,如下:

    Python 操作 打开及关闭方式 如下:

    注意 open() 之后 一定要 close()。但由于文件读写时都可能产生IOError,为了保证无论是否出错都能正确地关闭文件,我们用 try ... finally 来实现:

    python 简化了改写法,即用 with open(...) as ...  ; 建议之后文件读写都用该写法:

    上面,你肯定注意到了参数 "r";该参数决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。

    相关参数:

    r: 以只读方式打开文件。文件的指针将会放在文件的开头。这是**默认模式**。

    rb: 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

    r+: 打开一个文件用于读写。文件指针将会放在文件的开头。

    rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

    w: 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

    wb: 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

    w+: 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

    wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

    a: 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

    ab: 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

    a+: 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

    File 对象

    file 为一对象,它有一些内置属性,如下

    file对象的属性:

    file.read([size])  将文件数据作为字符串返回,可选参数size控制读取的字节数

    file.readlines([size])  返回文件中行内容的列表,size参数可选

    file.write(str)  将字符串写入文件

    file.writelines(strings)  将字符串序列写入文件

    file.close()  关闭文件

    file.closed 表示文件已经被关闭,否则为False

    file.mode Access文件打开时使用的访问模式

    file.encoding 文件所使用的编码

    file.name 文件名

    file.newlines 未读取到行分隔符时为None,只有一种行分隔符时为一个字符串,当文件有多种类型的行结束符时,则为一个包含所有当前所遇到的行结束的列表

    file.softspace 为0表示在输出一数据后,要加上一个空格符,1表示不加。这个属性一般程序员用不着,由程序内部使用

    read()    read(size)   readline()   readlines()

    之前的例子已经接触到了 read() 函数,该函数会会一次性读取文件的全部内容,如果能确保文件的大小,自然可以。但若文件过大,内存就爆了,所以,可以反复调用read(size)方法,每次最多读取size个字节的内容;也可调用 readline() 每次读取一行内容;而调用readlines()可以一次读取所有内容并按行返回list。总之,根据需求来。仅以 txt 文件为例,其他的文件读取需要特殊处理;另外,文件的格式编码方式也需要注意;这边仅介绍读取方法,其他的会出专题来学习。

    在D:\python_file 下新建 poet.txt;示例如下,由于一个中文会占多个字节,故read(size) 部分会乱码,如:

    write()

    写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件;'a' 对应的表示追加等。

    如下示例,由于 write.txt 文件不存在,创建该文件并写入:

    在上例基础上,继续,该文件被重写:

    继续,这次使用追加,会在文件结尾追加:

    https://blog.csdn.net/msspark/article/details/86745391

    https://www.cnblogs.com/tianyiliang/p/8192703.html

    https://www.cnblogs.com/camilla/p/7234657.html

    https://blog.csdn.net/songlh1234/article/details/83316468

    https://www.php.cn/python-tutorials-412484.html

    https://blog.csdn.net/weay/article/details/80946152

    https://blog.csdn.net/xc_zhou/article/details/81044836

    相关文章

      网友评论

        本文标题:Python文件读写

        本文链接:https://www.haomeiwen.com/subject/dbpsactx.html