python入门(11)文件操作
一、文件的概念
1.文件的概念和作用
- 概念
计算机中的文件,就是存储在某种长期储存设备上的一段数据
长期存储设备包括:硬盘、U盘、移动硬盘、光盘… - 文件的作用
将数据长期保存下来,在需要的时候使用
2.文件的存储方式
在计算机中,文件是以二进制的方式保存在磁盘上的
文本文件和二进制文件
- 文本文件
可以使用文本编辑软件查看
本质上还是二进制文件
例如:python的源程序 - 二进制文件
保存的内容不是给人直接阅读的,而是提供给其他软件使用的
例如:图片文件、音频文件、视频文件等等
二进制文件不能使用文本编辑软件查看
二、文件的基本操作
1.操作文件的套路
- 操作文件三步骤
打开文件
读、写文件(读:将文件内容读入内存;写:将内存内容写入文件)
关闭文件
2.操作文件的函数/方法
序号 | 函数/方法 | 说明 |
---|---|---|
1 | open | 打开文件,并且返回文件操作对象 |
2 | read | 将文件内容读取到内存 |
3 | write | 将指定内容写入文件 |
4 | close | 关闭文件 |
- open函数负责打开文件,并且返回文件对象
- read、write、close三个方法都需要通过文件对象来调用
3.read方法 — 读取文件
- open函数的第一个参数是要打开的文件名(文件名区分大小写);如果文件存在,返回文件操作对象,如果文件不存在,会抛出异常
- read方法可以一次性读入并返回文件的所有内容
- close方法负责关闭文件;如果忘记关闭文件,会造成系统资源消耗,而且会影响到后续对文件的访问
- 注意:方法执行后,会把文件指针移动到文件的末尾
# 1.打开文件
file = open("test.txt",encoding="UTF-8")
# 2.读取文件内容
text = file.read()
print(text)
# 3.关闭文件
file.close()
运行截图:
提示:通常会先编写打开和关闭的代码,再编写中间针对文件的读/写操作
4.文件指针
- 文件指针标记从哪个位置开始读取数据
- 第一次打开文件时,通常文件指针会指向文件的开始位置
- 当执行了read方法后,文件指针会移动到读取内容的末尾
5.打开文件的方式
- open函数默然以只读方式打开文件,并且返回文件对象
- 语法如下: f = open(“文件名”,“访问方式”)
# 1.打开文件
file = open("test.txt","a",encoding="UTF-8")
# 2.读取文件内容
file.write("hello")
# 3.关闭文件
file.close()
- 频繁的移动文件指针,会影响文件的读写效率,开发中更多的时候会以只读、只写的方式来操作文件
6.readline方法
readline方法可以一次读取一行内容
方法执行后,会把文件指针移动到下一行,准备再次读取
# 1.打开文件
file = open("test.txt")
while True:
# 读取一行内容
text = file.readline()
if not text:
break
print(text)
# 3.关闭文件
file.close()
运行截图:
7.文件复制—小文件
打开一个已有文件,读取完整内容,并写入到另外一个文件
# 1.打开文件
file_yuan = open("test.txt")
file_goal = open("test_copy.txt","w")
# 2.读写文件
text = file_yuan.read()
file_goal.write(text)
# 3.关闭文件
file_yuan.close()
file_goal.close()
8.文件复制 —大文件
打开一个已有文件,逐行读取内容,并顺序写入到另外一个文件
# 1.打开文件
file_yuan = open("test.txt")
file_goal = open("test_copy.txt","w")
# 2.读写文件
while True:
# 读取一行内容
text = file_yuan.readline()
if not text:
break
file_goal.write(text)
# 3.关闭文件
file_yuan.close()
file_goal.close()
三、文件/文件夹的常用操作
- 在终端/文件浏览器中可以执行常规的文件/目录管理操作,例如:创建、重命名、删除、改变路径、查看目录内容
- 在python中,如果希望通过程序实现上述功能,需要导入os模块
- 文件、目录操作都支持相对路径和绝对路径
1.文件操作
2.目录操作
import os
os.rename("123.txt","test_copy.txt.txt")
print(os.listdir("."))
运行截图:
四、文本文件的编码方式
文本文件存储的内容是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等。
python2.x默认使用ASCII编码
python3.x默认使用UTF- 编码
- ASCII编码
计算机中只有256个ASCII字符,一个ASCII在内存中占用1个字节的空间,8个0/1
的排列组合方式一共有256种 - UTF-8编码格式
计算机中使用1~6个字节来表示一个UTF-8字符,涵盖了地球上几乎所有地区的文字;
大多数汉字会使用3个字节
UTF-8是UNICODE编码的一种编码格式
五、eval函数
eval函数— 将字符串当成有效的表达式来求值,并返回计算结果
- 在开发时,不要使用eval直接转换input的结果(防止他人通过input输入代码破坏运行文件夹中内容)
__import__('os')..system('ls')
等价于
import os
os.system("终端命名")
执行成功,返回0;执行失败,返回错误信息