格式化:字符串格式化,将字符串按一定规格和样式进行规范
数据格式化:将一组数据按一定规格样式进行规范:表示,存储,运算等
方法论:从Python角度理解的文件和数据表示
实践:学会编写带有文件的输入输出的程序
(掌握对文件的读,写等操作)
文件时存储在辅助存储器上的数据序列
文件时数据存储的一种形式
文件展现形态:文本文件和二进制文件
=======文件的理解===========
文本文件vs二进制文件
文本文件和二进制文件只是文件的展示方式
本质上,所有文件都是二进制形式存储
形式上,所有文件采用两种方式展示
===========================
文件是数据的抽象和集合
文本文件
由单一特定编码组成的文件,如UTF-8编码
由于存在编码,也被看成是存储着长字符串
适用于例如:txt文件,py文件
二进制文件:
直接由比特0和1组成,没有统一字符编码
一般存在二进制0和1的组织结构,即文件格式
适用于例如:png文件,avi文件
#新建文件,内容:中国是伟大的国家,命名:f.txt ,存放位置:D:\\Desktop\\学习\\第七周
tf = open('D:\\Desktop\\学习\\第七周\\f.txt','rt',encoding='UTF-8') #打开文件,rt文本打开看,rb二进制打开
print(tf.readline()) #读取并打印文件
tf.close() #关闭文件
<变量名> = open(<文件名(文件的路径和名称)>,<打开模式>,<编码>)
打开模式:
r 只读模式,默认值,如果文件不存在,返回FileNotFoundError
w 覆盖模式,文件不存在则创建,存在则完全覆盖
x 创建写模式,文件不存在则创建,存在则返回FileExistsError
a 追加写模式,文件不存在则创建,存在则在文件最后追加内容
b 二进制文件模式
t 文本文件模式,默认值
+ 于r/w/x/a一同使用,在原功能基础上增加同时读写能力(r+,w+,x+,a+)
#读文件操作
a.read(size)
a.readline(size)
a.readlines(hint)
--------------
#写文件操作
a.write(s)
a.writelines(lines)
a.seek(offset)
=======文件内容的读取=========
<f>.read(size = -1) 读取全部内容,如果给出参数,独入前size长度
#新建文件,内容:中国是伟大的国家,命名:f.txt ,存放位置:D:\\Desktop\\学习\\第七周
tf = open('D:\\Desktop\\学习\\第七周\\f.txt','rt',encoding='UTF-8') #打开文件,rt文本打开看,rb二进制打开
print('打印文件的内容:{}'.format(tf.read(2))) #读取并打印文件
tf.close() #关闭文件
'''
打印文件的内容:中国
'''
<f>.readline(size = -1) 读入一行内容,如果给出参数,读入前size长度
<f>.readlines(hint = -1) 读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行
#新建文件,内容:中国是伟大的国家,命名:f.txt ,存放位置:D:\\Desktop\\学习\\第七周
tf = open('D:\\Desktop\\学习\\第七周\\f.txt','rt',encoding='UTF-8') #打开文件,rt文本打开看,rb二进制打开
print('打印文件的内容:{}'.format(tf.readlines())) #读取并打印文件
tf.close() #关闭文件
'''
打印文件的内容:['中国是个伟大的国家\n', '核算维度在总账系统中具有十分独特和灵活的作用']
'''
遍历全文本
#方法一,一次性全部处理
fname = input('请输入要打开的文件名称:') #通过用户输入文件名字
fo = open(fname,'r',encoding='UTF-8') #打开该文件
txt = fo.read()
print (txt)
fo.close()
#方法二,按数量独入处理
fname = input('请输入要打开的文件:')
fo = open (fname,'r',encoding='UTF-8')
while txt !='':
#对txt进行处理
print(txt)
txt = fo.read(2)
fo.close()
文本的逐行操作
#方法一
fname = input('请输入要打开的文件名称:')
fo = open(fname,'r',encoding='UTF-8')
for line in fo.readlines():
print(line)
fo.close()
#方法二
fname = input('请输入要打开的文件名称:')
fo = open(fname,'r',encoding='UTF-8')
for line in fo: #分行读入处理
print(line)
fo.close()
数据写入文件
<f>.write(s) 向文件写入一个字符串或字节流
<f>.writelines(lines) 将一个元素全为字符串的列表写入文件
辅助写入函数seek
<f>.seek(offset) 改变当前文件操作指针的位置,offset含义如下
0-文件开头,1-当前位置,2-文件结尾
f.seek(0) #回到文件开头
#写入文件
#输入需要写入的文件
fname = input('请输入要打开的文件名称:')
#打开文件,采用w+,,,覆盖读取模式
fo = open(fname,'w+',encoding='UTF-8')
#写入字符串
fo.writelines('中国是个伟大的国家')
#写入列表字符
ls = ['中国','美国','法国']
fo.writelines(ls)
#写入代码执行后,指针是在文件的最后,就和打字一样在最后,这个时候调整指针,直接读取,输出的就是空白的,它会从指针的位置进行读取,所以需要调整指针回到文件开始
fo.seek(0) #回到文件初始位置
#循环读取文件
for line in fo:
print(line)
fo.close()