Python快速入门(十一)文件:读取、打开、写入、复制、eval函数
- 1.read读取文件
- 2.打开文件的方式
- 3.分行读取文件内容
- 4.写入文件
- 5.复制文件
- 6.eval 函数
前言:主要介绍Python文件的读取、打开、写入、复制以及eval函数的使用。
1.read读取文件
- open 函数的第一个参数是要打开的文件名(文件名区分大小写),如果文件存在,返回文件操作对象,如果文件 不存在,会抛出异常。
- read 方法可以一次性 读入 并 返回 文件的 所有内容
- close 方法负责关闭文件。
- 注意1:如果忘记关闭文件,会造成系统资源消耗,而且会影响到后续对文件的访问。
- 注意2:read方法执行后,会把文件指针移动到文件的末尾。
代码:
# 打开文件
file = open("README")
# 读取文件内容
text = file.read()
print(text)
# 关闭文件
file.close()
输出:
- 注意3:读取文件后文件指针会改变
代码:
# 1. 打开文件
file = open("README")
# 2. 读取文件内容
text = file.read()
print(text)
print(len(text))
print("-" * 50)
text = file.read()
print(text)
print(len(text))
# 3. 关闭文件
file.close()
输出:
2.打开文件的方式
- r:以只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式。如果文件不存在,抛出异常。
- w:以只写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件。
- a:以追加方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入。
- r+:以读写方式打开文件。文件的指针将会放在文件的开头。如果文件不存在,抛出异常。
- w+:以读写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件。
- a+:以读写方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入。
- 提示:频繁的移动文件指针,会影响文件的读写效率,开发中更多的时候会以 只读、只写 的方式来操作文件。
3.分行读取文件内容
- read 方法默认会把文件的 所有内容 一次性读取到内存,如果文件太大,对内存的占用会非常严重。
- readline 方法可以一次读取一行内容,方法执行后,会把 文件指针 移动到下一行,准备再次读取。
代码:
file = open("README")
while True:
text = file.readline()
# 判断是否读取到内容
if not text:
break
print(text)
file.close()
输出:
4.写入文件
代码:
# 打开
file = open("README", "a")
# 写入文件
file.write("123 hello")
# 关闭
file.close()
输出:
5.复制文件
复制一般文件:
# 1. 打开
file_read = open("README")
file_write = open("REAMDE[复件]", "w")
# 2. 读、写
text = file_read.read()
file_write.write(text)
# 3. 关闭
file_read.close()
file_write.close()
复制大文件:
# 1. 打开
file_read = open("README")
file_write = open("REAMDE[复件]", "w")
# 2. 读、写
while True:
# 读取一行内容
text = file_read.readline()
# 判断是否读取到内容
if not text:
break
file_write.write(text)
# 3. 关闭
file_read.close()
file_write.close()
6.eval 函数
- eval() 函数十分强大 —— 将字符串 当成 有效的表达式 来求值 并 返回计算结果。
代码:
input_str = input("请输入算术题:")
print(eval(input_str))
输出:
结束!!!