python文件操作

转载请注明出处https://blog.csdn.net/weixin_45163516

读写文件

普通程序读写文件的时候需要向操作系统发出请求,请求操作系统打开一个文件对象,通过这个文件对象来进行读写

with open(str1,"r",encoding="utf-8") as f:
      pass
      

f =open(path,mode,encoding,errors)

path:文件路径
mode:模式 r:读取,默认
encoding:编码格式
errors默认strict[严格的] ignore 忽略编码错误
f:打开的文件对象,f是一个迭代f器

f.read()

一次性读取所有内容

f.read(size)

一次性读取size字节

f.readlines()

一次性读取所有行

f.readline()

一次性读取一行

f.close()

关闭文件
当使用文件读写时,需要在结尾使用f.close语句,不然会出现错误

with语句

语法:
with open(path,mode,encoding) as 文件名:
对文件进行操作

当文件一旦关闭,不能对此文件进行操作。

读取2进制文件with

open(path,mode) as f:
f.read()

mode: rb 读取二进制文件

结论:普通文件可以使用r/rb来进行读取,但是二进制的文件
只能使用rb的方式来进行读取。

二进制文件:图片,视频,音频

open(path,mode,encoding)

path:路径
mode:w/a
encoding:写入编码格式

f.write(str1)

写入的必须是字符串

使用w的方式写入:当path存在的时候,则覆盖,若path不存在
则创建。

使用a的方式写入的时候,若path存在,则追加,若path不存在,
则创建

f.writelines([“hello”,“good”,“nice”])

将列表中的字符串一次性写入到文件中

内存中读写

StingIO

from io import StringIO
from io import BytesIO

bio = BytesIO()
# 要求写入的必须是二进制的
bio.write("中国".encode())
# 查看bio内容
print(bio.getvalue().decode())

csv文件读写

#-- author:zhangjiao --
import csv

‘’’
需求:封装一下csv文件的读取,要求读取前n行,并且读取的数据以列表的方式返回。

‘’’

def readcsv(path,n):
    with open(path,"r",encoding="gbk",errors="ignore") as f:
        csv_reader = csv.reader(f)
        datalist = []
        for x in range(n):
            try:
                datalist.append(next(csv_reader))
            except StopIteration as e:
                break

    return datalist


def readandwrite(path1,path2,n):
    with open(path1,"r",encoding="gbk") as f:
        with open(path2,"w",encoding="gbk") as f2:
            csv_reader = csv.reader(f)
            csv_writer = csv.writer(f2)
            for x in range(n):
                csv_writer.writerow(next(csv_reader))
                
  if __name__ == '__main__':

   		res = readcsv("002.csv",5)
    	print(res)
        with open("002.csv","r",encoding="gbk") as f:
               csv_reader = csv.reader(f)
               print(next(csv_reader))
               with open("0002.csv","w",encoding="gbk") as f2:
                  csv_writer = csv.writer(f2)
                  for row in res:
                  csv_writer.writerow(row)

        readandwrite("002.csv","1.csv",50)
           
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值