Python——文件与文件操作

Python——文件与文件操作

一.文件的使用

1.文件的类型

​ 文件是数据的抽象与集合。

​ 文件都已二进制形式存储,即0和1的形式。文件有多种展示方式,比如,图片,文本,视频等等。本文 说是的操作主要是对于文本的操作。

  • 文本文件:由单一特定编码组成的文件,如utf-8编码
  • 二进制文件:直接由比特0和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])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值