Python---普通文件/csv/二进制 文件的读取和写入

文件读取:

在python中读写文件十分简单,我们可以使用python内置的open()函数来打开文件对象。

open(file,mode,encoding,errors=”ignore”)
参数1:文件路径
参数2:mode:模式,读取文件的时候使用”r”,默认”r”
参数3:encoding:指定读取的编码格式
参数4:errors:对编码错误的处理 默认是严格的,若使用”ignore”则可以忽略编码错误
功能:打开一个文件,并且获取到打开文件的对象。

f.read()
功能:一次性读取所有内容

f.read(size)
功能:一次性读取size个字节【当文件比较大的时候建议使用此方法】

f.readline()
功能:一次性读取一行

f.readlines()
功能:一次性读取所有内容,以列表的方式返回,列表每个元素就是读取到每一行的数据

PS:
当文件特别大的情况下,我们可以使用f.read(size),或者f.readline()
当读取配置文件的时候,建议使用f.readline() 或者使用f.readlines()

f.close()
功能:关闭文件,
注意:当文件读取完毕之后,一定要进行关闭,因为打开的文件是占内存的,并且对于系统来讲它一次性打开文件的
个数也是有限制的。

 

文件写入:

open(file,mode,encoding,errors=”ignore”)
参数1:文件路径
参数2:mode:模式【w/a】
参数3:encoding:指定写入的编码格式
参数4:errors:对编码错误的处理 默认是严格的,若使用”ignore”则可以忽略编码错误
功能:返回一个打开的文件对象
PS:
当w模式的时候,覆盖写,若此文件已经存在,后面写的会将前面的文件进行覆盖,
若此文件不存在,则创建此文件。
当使用a模式的时候,追加写,若此文件已经存在,后面写的追加在原文件的后面,
若此文件不存在,则创建文件。

f.write(str)
功能:将字符串写入到打开的文件中,注意写入必须是字符串

f.writelines(list)
参数:列表,并且列表中元素一定是字符串
功能:将列表中的元素写入到打开的文件中。

f.close()
功能:保证内容写入到文件中。

 

with语句:

with open(file,mode,encoding) as f1:
    #文件操作
    #写入文件
    #读取文件

作用:
当with下面的语句执行完毕之后,它会自动帮我们关闭此文件,无需我们手动close文件

 

读取二进制文件:

当读取音频视频以及图片的时候,我们需要使用二进制文件的读取以及写入。
with open(file,mode) as f:
    pass
file:文件路径
mode:rb 读取二进制文件

strb =  f.read()
功能:一次性读取所有内容,以二进制的字符串返回。

strb = f.read(size)
功能:一次性读取size个字节

 

写入二进制文件:

当读取音频视频以及图片的时候,我们需要使用二进制文件的读取以及写入。
with open(file,mode) as f:
    pass
file:文件路径
mode:wb/ab       写入二进制文件

f.write(strb)        以二进制的字符串写入

 

csv文件读取:

 

import csv
with open(“002.csv”, “r”, encoding=”gbk”, errors=”ignore”) as f:
    csv_reader = csv.reader(f)
    for row in csv_reader:
        print(row)    

csv文件写入:

import csv
def getcsvlist(path,n):
    csvlist = []
    with open(path,”r”,encoding=”gbk”,errors=”ignore”) as f:
        csv_reader = csv.reader(f)
        for x in range(n):
            csvlist.append(next(csv_reader))
    return csvlist

with open(“004.csv”,”w”,encoding=”gbk”) as f2:
    res = getcsvlist(“002.csv”,30)
    csv_writer = csv.writer(f2)
    csv_writer.writerows(res)             #多行一起写入,需要传入二维数组,.writerow()写入一行,传入一维数组

    原文作者:lonely2018
    原文地址: https://blog.csdn.net/lonely2018/article/details/93071648
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞