python 文件的使用

目录

文件的理解 

文件的打开关闭

文件的打开模式

文件内容的读取

数据的文件写入


文件的理解 

文件是数据的抽象和集合
-文件是存储在辅助存储器上的数据序列
-文件是数据存储的一种形式
-文件展现形态:文本文件和二进制文件

文本文件 vs.二进制文件
-文本文件和二进制文件只是文件的展示方式
-本质上,所有文件都是二进制形式存储
-形式上,所有文件采用两种方式展示

文本文件
文件是数据的抽象和集合
-由单一特定编码组成的文件,如UTF-8编码
-由于存在编码,也被看成是存储着的长字符串
-适用于例如:.txt文件、.py文件

二进制文件
文件是数据的抽象和集合

-直接由比特0和1组成,没有统一字符编码
-一般存在二进制0和1的组织结构,即文件格式
-适用于例如:.png文件、.avi文件等

例:"中国是一个伟大的国家!"

文本形式:

中国是一个伟大的国家!

二进制形式:

b'\xd6\xd0\xb9\xfa\xca\xc7\xb8\xf6\xce\xb0\xb4\xf3\xb5\xc4\xb9\xfa\xbc\xd2\xa3\xa1'

#文本形式打开文件
ft=open("f.txt","rt")
print(tf.readline())
tf.close()
#二进制形式打开文件
bf=open("f.txt","rb")
print(bf.readline())
bf.close()

文件的打开关闭

文件处理的步骤:打开(a=open( , ))-操作-关闭(a.close())
文件未打开时处于存储状态,无法对其进行相应操作,只有打开文件使其处于占用状态时才能进行

文件操作

打开文件
格式:<变量名>=open(<文件名>,<打开模式>)
ps:<文件名>指的是文件路径和名称,源文件同目录可省路径
   <打开模式>文本or二进制    读or写

读文件
a.read(size)
a.readline(size)
a.readlines(hint)

写文件
a.write(s)
a.writelines(lines)
a.seek(offset)

文件的打开模式

"r"只读模式,默认值,如果文件不存在,返回FileNotFoundError
"w"覆盖写模式,文件不存在则创建,存在则完全覆盖
"x"创建写模式,文件不存在则创建,存在则返回FileExistsError
"a"追加写模式,文件不存在则创建,存在则在文件最后追加内容
"b"二进制文件模式
"t"文本文件模式,默认值
"+"与r/w/x/a一同使用,在原功能基础上增加同时读写功能

使用例子

f=open("f.txt")-文本形式、只读模式、默认值
f=open("f.txt","rt")-文本形式、只读模式、同默认值
f=open("f.txt","w")-文本形式、覆盖写模式
f=open("f.txt","a+")-文本形式、追加写模式+读文件
f=open("f.txt","x")-文本形式、创建写模式
f=open("f.txt","b")-二进制形式、只读模式
f=open("f.txt","wb")-二进制形式、覆盖写模式

文件内容的读取

<f>.read(size=-1)读入全部内容,如果给出参数,读入前size长度
>>>s=f.read(2)
中国
<f>.readline(size=-1)读入一行内容,如果给出参数,读入前size长度
>>>s=f.readline()
中国是一个伟大的国家!
<f>.readlines(hinr=-1)读入文件所有行,以每行为元素形成列表
如果给出参数,读入hine行
>>>s=f.readlines()
['中国是一个伟大的国家!']

文件的全文本操作

遍历全文本:方法一

fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
txt=fo.read()
#对全文本txt进行处理
of.close()
#,read():一次读入,统一处理,如果文本很大,将耗费大量内存空间

遍历全文本:方法二

fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
txt=fo.read(2)
while txt !="":
    #对txt进行处理
    txt=fo.rea(2)
fo.close()
#一次读入两个字节,文本不为空就继续读入,节省内存空间

逐行遍历文件:方法一

fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
for line in fo.readlines():
    print(line)
fo.close()
#readlines():一次读入,逐行处理

逐行遍历文件:方法二

fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
for line in fo:
    print(line)
fo.close()
#line in fo:分行读入,逐行处理


数据的文件写入

<f>.write(s)像文件写入一个字符串或字节流
>>>f.write("中国是一个伟大的国家!")
<f>.writelines(lines)将一个元素全为字符串的列表写入文件
>>>ls=["中国","法国","美国"]
>>>f.writelines(ls)
中国法国美国
<f>.seek(offset)改变当前文件操作指针的位置,offset含义如下:
0-文件开头;1-当前位置;2-文件结尾
>>>f.seek(0)  #回到文件开头

写入文件

fo=open("output.txt","w")
ls=["中国","法国","美国"]
fo.writelines(ls)
f.seek(0)                #将指针返回最初的位置
for line in fo:
	print(line)
fo.close()
#writelines:写入一个字符串列表



 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿勉要睡觉(原神启动版)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值