第七章文件与数据格式化

第七章文件与数据格式化

7.1文件概述

1.文件标识

意义

唯一确定文件

组成

路径、文件名主干、文件扩展名

D:\itcast\chapter10\example.dat
#                  ________
#__________________文件名主干_____
#     路径                  扩展名

操作系统以文件为单位进行数据管理

2.文件分类

基于数据逻辑存储结构

a.文本文件

文本字符

b.二进制文件

7.2文件的基本操作

7.2.1文件的打开与关闭

1.打开文件
open()函数

格式

open(file,mode = 'r',encoding=None)
  • file:用于接收文件名或文件路径
  • 参数encoding:用于指定文件的编码格式,常见的有Ascii、utf-8等
  • 参数mode:用于设置文件的打开模式

常见文件打开模式及其搭配

  1. r/rb——只读模式:以只读方式打开文件/二进制文件,文件不存在,文件打开失败
  2. w/wb——只写模式:以只写方式打开文件/二进制文件,若文件已存在,则重写文件,否则创建新文件
  3. r+/rb+——读取(更新)模式:以读/写方式打开文件/二进制文件,文件不存在,文件打开失败
  4. w+/wb+——写入(更新)模式:以读/写方式打开文件/二进制文件,若文件已存在,则重写文件
2.关闭文件
close()方法

例えば

file.close()
with语句

文件对象使用完毕后,文件可自动关闭

例えば

with open('a.txt') as f:
    pass#一些操作

7.2.2文件的读写

1.读文件
read()方法

格式

read(n=-1)

例えば

with open('file.txt',mode='r') as f:
    print(f.read(2))#读取2各字节的数据
    print(f.read())#读取全部数据
readline()方法

从指定文件中读取一行数据

格式

readline()

例えば

#file内容为:
#FRANCISCO at his post. Enter to him BERNARDO
#BERNARDO
#Who's there?
#FRANCISCO
with open('file.txt',mode='r',encoding='utf-8') as f:
    print(f.readline())
    print(f.readline())
    #结果
#FRANCISCO at his post. Enter to him BERNARDO
#BERNARDO
readlines()方法

一次性读取文件中的所有数据,若读取成功返回一个列表

例えば

with open('file.txt',mode='r',encoding='utf-8') as f:
    print(f.readlines())
#['FRANCISCO at his post. Enter to him BERNARDO/n','BERNARDO/nWho's there?/n','FRANCISCO/n']
2.写文件
write()

将指定字符串写入文件,若成功写入返回写入文件的数据的字节数

格式

write(data)

例えば

#file内容为:
#FRANCISCO at his post. Enter to him BERNARDO
#BERNARDO
#Who's there?
#FRANCISCO
size = "heeeheeeheee"
with open('file.txt',mode='r',encoding='utf-8') as f:
    size = f.write(string)
    print(size)    
writelines()方法

将字符串型列表写入文件

格式

writelines(lines)

7.2.3文件的定位读写

文件默认读写位置为0

tell()方法

获取文件当前的读写位置

with open('file.txt') as f:
    print(f.tell())
    print(f.read(5))
    print(f.tell())
    #运行结果
    #0
    #5
seek()方法

控制文件的读写位置,调用成功后会返回当前读写位置

格式

seek(offset,from)
  • 参数offset:偏移量,即读写位置需要移动的字节数

  • from:用于指定文件的读写位置,参数取值0、1、2

  • ​ 0:表示文件开头

  • ​ 1:表示使用当前读写位置

  • ​ 2:表示文件末尾

with open('file.txt') as f:
    f.tell()#获取文件读写位置
    loc = f.seek(5,0)#相对文件首部移动5字节
    print(loc)#打印当前文件读写位置
    #结果
    #5

7.3文件与目录管理

os 模块中也定义了与文件操作相关的函数

remove()函数

删除文件

格式

import os
os.remove(文件名)

rename()函数

更改文件名

格式

import os
os.rename(原文件名,新文件名)

mkdir()/rmdir()函数

mkdir()函数

用于在当前目录下创建目录,不能与已有目录重名

os.mkdir('dir')

rmdir()函数

用于删除目录,删除前必须将文件夹里的目录清理干净

os.rmdir('dir')

getcwd()函数

获取当前目录

print(os.getcwd())
#结果
#\python_study\frist_proj

chdir()函数

更改默认路径

os.chdir('E:\\')#更改默认目录为E:\
print(os.getcwd())#获取当前工作目录
#结果'E:\'

listdir()函数

获取指定目录下的文件名列表

dris = os.listdir('./')#获取文件名列表
print(dirs)

7.5数据维度与数据格式化

7.5.1基于维度的数据分类

一维数据

一组线性数据

一维列表、一维元组、一维集合等

二维数据

此类数据对应数学中的矩阵和二维数组

二维列表、二维元组等(列表里套列表)

多维数据

利用键值对等简单的二元关系展示数据间的复杂结构

字典

7.5.2一维数据和二维数据的储存与读写

国际上通用的一维数据和二维数据存储格式为CSV,文件的每一行对应表格中的一条数据记录,每条记录有一个或多个字段组成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值