文件操作及csv模块

编码格式

python的解释器使用的是Unicode(内存)

.py文件在磁盘上使用UTF-8存储(外存)
在这里插入图片描述
编码encode就是把人类语言转成计算机语言。解码decode就是把计算机语言转成人类语言。
计算机语言有一个相同之处,就是最前面都有一个字母‘b’,这是代表它是bytes(字节)类型的数据。计算机的编码,就是把字符串类型的数据,转换成bytes类型的数据。计算机的解码,就是把bytes类型的数据,转换成字符串类型的数据。编码时用什么样的编码表,解码的时候就用什么样的编码表。
在这里插入图片描述

文件读写的原理

文件的读写俗称“I/O操作”,流程:python操作文件—》打开或新建文件—》读/写文件—》关闭资源

内置函数open()创建文件对象

语法规则:

file = open (filename,mode,encoding) 
# 打开模式默认为只读,默认文本文件中字符的编写格式为gbk

常见的文件打开模式

按文件中数据的组织形式,文件分为以下两大类:

文本文件:存储的是普通字符文本,默认为unicode字符集,可以使用记事本程序打开;

二进制文件:把数据内容用“字节”进行存储,无法用记事本打开,必须使用专用的软件打开,如MP3音频文件/图片/.doc文档等

r:只读模式,文件的指针将会放在文件的开头

w:只写模式,如果文件不存在即创建;如果文件存在,则覆盖原有内容,文件指针在文件的开头,file.write(要写入的内容)

a:追加模式,如果文件不存在即创建,文件指针在文件的开头;如果文件存在,则在文件末尾追加内容,文件指针在原文件末尾

b:二进制方式打开文件,不能单独使用,需要与其他模式一起使用,如rb,或wb

+:以读写方式打开文件,不能单独使用,需要与其他模式一起使用,a+

文件对象的常用方法

read(size):从文件中读取size个字节或者字符的内容返回,若省略size,则读取到文件末尾,即一次读取文件所有内容

readline():从文本文件中读取一行内容

readlines():把文本文件中每一行都作为独立的字符串对象,并将这些对象放入列表返回

write(str):将字符串str内容写入文件

writelines(s_list):将字符串列表s_list写入文本文件,不添加换行符

seek(offset,whence):把文件指针移动到新的位置,offset表示相对于whence的位置:

- offset:为正往结束方向移动,为负往开始方向移动

- whence不同的值代表不同的含义:

    - 0:从文件头开始计算(默认值)
    
    - 1:从当前位置开始计算
    
    - 2:从文件末尾开始计算

tell():返回文件指针的当前位置

flush():把缓冲区的内容写入文件,但不关闭文件

close():把缓冲区的内容写入文件,同时关闭文件,释放文件对象相关资源

with语句(上下文管理器)

with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,从而达到释放资源的目的。

with open (filename, mode) as f:

实现了__enter____exit__方法的类创建的实例对象就是上下文资源管理器

csv模块

读取

import csv

with open("文件名.csv",encoding='utf-8-sig')  as r:
    print("内容如下\n")
    reader = csv.reader(r)
    #使用csv的reader()方法,创建一个reader对象
    for content in reader:
    #遍历reader对象的每一行
        print(content)
print("读取完毕!")

写入

import csv
with open("文件名.csv",'a')  as r:
    writer = csv.writer(r)
    writer.writerow([41,42,43])
print("写入完毕!")
open_file("mytest1.csv")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值