Python学习笔记(九)——文件,文件的操作,eval函数

本节将描述文件的基本操作:读,写以及复制等等。

1. 文件的分类

按文件中数据的组织形式可以把文件分为文本文件和二进制文件。

1.1 文本文件

文本文件存储的是常规字符串,由文本组成,通常每行以换行符’\n’结尾。文件中的字符串,人类可以直接阅读或理解。可以用记事本直接打开。

1.2 二进制文件

二进制文件把对象内容以字节串(bytes)进行存储,无法用记事本或其他普通文本处理软件直接进行编辑。通常也无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取,显示,修改会执行。常见的有图像图像文件,音频文件,视频文件,可执行文件等等。

2. Python中文件的操作

对文件的操作一般包括三步:

  • 1).打开文件
  • 2).读、写文件
  • 3).关闭文件

2.1 打开文件

f = open("data.txt",'r')
使用 open 打开文件,返回文件对象,其中参数可以是访问方式,例如 r,w等;
也可以加上编码格式,例如:
f = open("text1",encoding = 'UTF8')

文件的访问方式:
在这里插入图片描述

2.2 读、写操作、文件的复制

1) read()表示读文件,表示读取所有的文件内容
f = open("text1",encoding = 'UTF8')    #默认情况下是读文件
#读文件
text = f.read()
print(text)
print(len(text))
f.close()
2) readline(),从文本文件中读取一行内容作为结果返回。
代码演示一:
f = open("text1",encoding = 'UTF8')
#读文件
text = f.readline()
print(text)
f.close()

代码演示二:
f = open("text1",encoding = 'UTF8')
while True:
    text = f.readline()
    if not text:
        break
    #每读取一行的末尾已经有了一个'\n'
    print(text,end="")
f.close()
3) readlines(),把文本文件中的每行文本作为一个字符串存入列表中,返回该列表。
f = open("text1",encoding = 'UTF8')
#读文件
text = f.readlines()
print(text)
f.close()
4) write(),当使用访问方式为 w 时,会覆盖文件之前的内容。
f = open("text1",'w',encoding = 'UTF8')
#写文件
text= "小曾同学"
f.write(text)
#每读取一行的末尾已经有了一个'\n'
print(text)
f.close()
5) 文件复制,当目标文件不存在时,则自动创建。
代码演示一:全部读取,并全部复制
f = open("text1",encoding = 'UTF8')    #源文件
f1 = open("text2","w",encoding = 'UTF8')  # 目标文件
text = f.read()
f1.write(text)
f.close()
f1.close()

代码演示二:一行一行的复制
f = open("text1",encoding = 'UTF8')
f1 = open("text2","w",encoding = 'UTF8')
while True:
    text = f.readline()
    if not text:
        break
    f1.write(text)
f.close()
f1.close()

2.3 关闭文件

f.close()
close(),关闭文件,并释放文件对象。
或者
with open("test.txt") as f:
		pass
当采用这种方式时,可以不同close.
with是上下文管理关键字,可以自动管理资源,不论何种原因跳出with块,
总能保证文件被正确关闭,并且可以在代码块执行完毕后自动还原进入代码块时的现场。

3. 文本文件的编码格式

常见的编码有ASCII编码,UNICODE编码,

  • Python 2.x 默认使用的是ASCII编码
  • Python 3.x 默认使用的是Unicode编码

所以有的时候我们会看到有些Python文件第一行,写上:
*coding:utf8 *
或者
coding = utf8

4. eval()函数

将字符串当成有效的表达式来求值并返回计算结果

print(eval("1+2"))
print(eval("'*'*10"))
print(eval("[1,2,3,4,5]"))
print(eval("{'name':'小曾'}"))

结果为:
3
**********
[1, 2, 3, 4, 5]
{'name': '小曾'}

示例:
a = eval(input("请输入运算式"))
print(a)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小曾同学.com

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

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

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

打赏作者

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

抵扣说明:

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

余额充值