Python——文件与文件操作
文章目录
一.文件的使用
1.文件的类型
文件是数据的抽象与集合。
文件都已二进制形式存储,即0和1的形式。文件有多种展示方式,比如,图片,文本,视频等等。本文 说是的操作主要是对于文本的操作。
2.文件的打开和关闭
打开:
<变量名> = open(<文件名>, <打开模式>)
'''变量名,通常称为文件句柄。
而文件名,则是该文件的绝对路径,与源文件同目录可省路径直接写文件名。
例:路径D:/PYE/t.txt
'''
打开模式:
打开模式 | 描述 |
---|---|
“r” | 只读,如果文件不存在,返回FileNotFoundError |
“w” | 覆盖写模式,不存在则创建,存在则完全覆盖 |
“x” | 创建写模式,不存在则创建,存在则返回FileExistsError |
“a” | 追加写,文件不存在则创建,存在则在末尾追加内容 |
“b” | 二进制模式 |
“t” | 文本模式 |
“+” | 与r/w/x/a一同使用,增加功能 |
3.文件的关闭
<文件句柄>.close()
4.文件内容读取的常用方法
操作方法 | 描述 |
---|---|
<文件句柄>.read(size=-1) | 读取全部内容,如果给出参数,则读取前size的长度 |
<文件句柄>.readline(size=-1) | 读入一行的内容,如果给出参数,读入该行前size的长度 |
<文件句柄>.readlines(size=-1) | 读入文件所有行,一每行为元素形成列表,如果有参数,读入前size行 |
5.遍历文本的常用方法:
'''
方法一:一次读(不写入内容),一起处理
弊端:对大文件的操作,耗费大量资源
'''
fo = open(path,"r")
txt = fo.read()
#文件处理
fo.close()
'''
方法二:按数量读入
'''
fo = open(path,"r")
txt = fo.read(2)
while txt != "":
#文件处理
txt = fo.read(2)
fo.close()
'''
方法三:一次读入,分行处理
'''
fo = open(path,"r")
for line in fo.readlines():
#文件处理
fo.close()
'''
方法四:分行读入,分行处理
'''
fo = open(path,"r")
for line in fo:
#文件处理
fo.close()
6.数据文件的写入
操作方法 | 描述 |
---|---|
<文件句柄>.write(s) | 写入一个字符串或字节流 |
<文件句柄>.writelines(lines) | 将一个元素全为字符串的列表写入文件(元素拼接写入不换行) |
<文件句柄>.seek(offset) | 改变当前文件操作指针的位置(0-文件开头,1-当前位置,2-文件结尾) |
二.数据的格式化与处理
1.维度:
一组数据的组织形式
2.一维数据:
线性方式组织
3.二维数据:
多个一维数据构成
4.高维数据:
仅利用最基本的二元关系展示数据间的复杂结构
5.表示方式:
有序多用列表[]表示,无序多用集合{}表示
扩展:
CSV格式(Comma-Separated Values):
为逗号分隔值文件格式
- 国际通用,以.CSV为扩展名
- 每一行为一个一维数据,采用逗号分隔,无空行
- 如果某个元素缺失,逗号仍要保留
- 逗号为英文半角
三.实例
问题描述:通过读取设定好的文件,自动绘制图形
#自动轨迹分析
import turtle as t
t.title("自动绘制轨迹")
t.setup(800, 600, 0, 0)
t.pencolor("red")
t.pensize(5)
cmd = open("command.txt","rt",encoding = "UTF-8-sig")#指定编码格式
for line in cmd:
line = line.replace("\n","")
ls=line.split(",")
print(ls)
for i in range(len(ls)):
ls[i] = eval(ls[i])
t.fd(ls[0])
if ls[1] == 0:
t.left(ls[2])
else:
t.right(ls[2])
t.pencolor(ls[3],ls[4],ls[5])