文件的读写

一、数据持久化:将数据从瞬时状态转换为持久状态。

文本文件、表格文件

二、Python操作文件

操作文本文件:新建(重命名) -> 打开 -> 写数据 -> 保存关闭
打开 -> 读数据 ->关闭
表格文件(excel):新建 -> 打开 ->写数据 -> 保存、关闭、重命名
打开 -> 读数据 -> 关闭

三、文件操作形式:a. 以什么形式操作文件 。b.以什么数据类型操作文件。

a.以什么形式操作文件:读、写

r : 只读、文件不存在,报错。

w : 只写,文件不存在,先创建。如果文件存在,先清空

a : 追加,文件不存在,先创建。文件存在,继续添加内容。

b.以什么数据类型操作文件。

t :字符串形式(如果选t,可以不写,默认。r等价于rt、tr)。

b:二进制形式。一般计算机中存储的书库都是以二进制形式存在的(图片,音频、视频等)

四、文件操作形式应该怎样使用

从"以什么形式操作文件"和"以什么数据类型操作文件"各自人选其一组合使用

‘rt’ ,‘rb’ , ‘tr’ ,‘br’ 等

文件操作:

open(参数1,参数2,参数3,参数4)

参数1:文件路径

参数2:文件操作模式

参数3:编码方式 encoding = ‘utf-8’

参数4:换行方式,newline = ‘’(读的操作不需要指定)

windows::\r \n ;mac:\r ; linue :\n

补充:\r将鼠标光标移动到下一行行首

文件路径分为:相对路径、绝对路径

绝对路径:一个文件存放在那个磁盘下的什么文件夹(能不用尽量不用)

D:\\user\word\test.txt

相对路径:以当前文件为参照物,另一个文件相对于他的位置

.表示当前目录
..表示返回上一级
/文件夹和文件夹之间以及文件夹和文件之间间隔的符号

以文件对象的形式打开已存在文件

file = open(‘文件名’,‘r’,encoding = ‘utf - 8’)

file = open(‘文件名’,‘r’,encoding = ‘gbk’)

print(ile)

读操作:read、readline、readlines

read:一次性将文件中内容以字符串的形式全部读取出来。

result = file.read()

readline:每次只读一行,结果为字符串类型

result1 = file.readline()
result2 = file.readline()
result3 = file.readline()
result4 = file.readline()
print(result1, result2, result3, result4)

readlines:一次性将所有行读出来,结果为列表,每一行是列表中的每个元素

result5 = file.readlines()
print(result5

关闭文件:

file.close()

文件的写操作:

file = open(‘文件名’,‘w’,encoding = ‘utf - 8’,newline= ‘’)

write:向文件写入内容

str1 = ‘静夜思\n唐 李白\n床前明月光\n疑是地上霜\n’

file.write(str1)

file.close()

读操作和写操作编码要保持一致

操作完文件后一定要保存关闭:file.close()

预定义的清理操作:with

只要退出了with的缩进,直接执行清理操作,将文件关掉

with open('古诗.txt', 'r', encoding='utf-8') as file:
    result = file.read()
    print(result)

print(file.read()) #退出了缩进
python读写图片和视频:

将图片二进制读出来:

file = open(‘图片的路径’,‘r’)

result = file.read()

file.close()

二进制字节码:b’xxxxxx’

将图片二进制数据写回去

file = open(“新建的路径”,‘wb’) # b是二进制格式,新建的图片,视频格式后缀和读出来的一致

file.write(result)

file.close()

CSV文件:

CSV文件中的数据是以表格形式展示,但是其中的原理是文本文件的原理。

import csv

file = open(‘csv文件路径’,‘w’,encoding = ‘utf-8’,newline = ‘’)

使用CSV模块提供的writer方法进行文件写操作

cev.writer(file),

为了方便写。让A = cev.writer(file)

writerow() - 单行写入,writerow中传递一个列表,列表表示一行,

列表中的一个元素代表一个单元格的内容

A.writerow([‘编号’,‘姓名’,‘年龄’,‘专业’])

writerows() - 多行写入,writerows中传递一个列表,列表中有几个元素代表写几行,

其中的每个元素就是表示一行内容的小列表

myWrite.writerows(
    [
        ['python001', '张三', '18', '计算机科学与技术'],
        ['python001', '张三', '18', '计算机科学与技术'],
        ['python001', '张三', '18', '计算机科学与技术']
    ]
)

file.close()

csv.reader得到一个可迭代对象

data = csv.reader(file)
for i in data:
    print(i)
file.close()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值