-
l计算机的⽂件,就是存储在某种⻓期储存设备上的⼀段数据 ;
-
⻓期存储设备包括:硬盘、U 盘、移动硬盘、光盘 ;
-
⽂件的作⽤是可以将数据长期保存下来, 在需要的时候再使用。
-
可以使⽤⽂本编辑软件查看;
-
例如:python 的源程序 ,txt 文本文件、doc、ppt、表格
-
二进制文章是以01方式进行存储的
-
保存的内容不是给⼈直接阅读的,⽽是提供给其他软件使⽤的
-
例如:图⽚⽂件、⾳频⽂件、视频⽂件等等 ;
-
⼆进制⽂件不能使⽤⽂本编辑软件查看。
一共包含三个步骤:
-
第一步:打开⽂件 ;
-
第二步:进行读、写操作 ;
-
读: 将⽂件内容读⼊内存 ;
-
写: 将内容写⼊⽂件 。
-
-
第三步:关闭⽂件 。
-
open 函数:作用是打开文件
-
open 函数负责打开⽂件,并且返回⽂件对象
-
如果⽂件存在------返回⽂件操作对象
-
如果⽂件不存在------出错 ;
-
-
-
read / write / close 三个⽅法都需要通过 ⽂件对象 来调⽤
-
read 方法:作用读取⽂件的内容
-
open 函数的第⼀个参数是要打开的⽂件名(⽂件名区分⼤⼩写) ;
-
read ⽅法可以⼀次性读取文件的所有内容 。
-
close ⽅法负责关闭⽂件,如果忘记关闭⽂件,会造成系统资源消耗,⽽且会影响到后续对⽂件的访问 。
-
open 函数默认以只读⽅式打开⽂件,并且返回⽂件对象
“r”:只读方式打开文件;
“w”:只写方式打开文件,此方法会将文件中的原有内容清空,然后进行写入
“a”:追加写方式打开文件,此方法会在文件的原有内容后继续进行写入
open 函数的访问方式后面添加 b 参数代表访问二进制文件,如:
rb: 代表用只读的方式打开一个二进制文件;
wb:代表用只写的方式打开一个二进制文件。
ab:代表用追加写的方式打开一个二进制文件。
注意:
四、文件操作案例 1、读取文件
用r方式打开文件,如果文件不存在,则会报错
用wa方式打开文件的时候,即使文件不存在,也不会报错
# 用只读的方式打开文件a1.txt # 这个文件必须是存在的 # 将这个打开的文件对象赋值给变量file file = open(r"C:a1.txt", "r") # 从这个打开的文件中去读取内容 # 将读取的结果赋值给text text = file.read() # 关闭打开的文件 file.close() # 显示以下从文件中读取的内容 print(text)2、写入文件
# 打 开文件 file = open(r"C:filetempb.txt", "w") # 写入内容 str1 = "hello worldn" str1 = "hello pythonn" file.write(str1) # 关闭文 件 file.close()
# 打 开文件 file = open(r"C:filetempb.txt", "a") # 写入内容 str1 = "hello worldn" str1 = "hello pythonn" file.write(str1) # 关闭文 件 file.close()3、指定编码类型
file = open(文件名, 打开方式, encoding="编码")五、读取内容
读取内容的三种方法
1、readlineread:一次性将文件的全部内容读取出来,保存成一个字符串
readline:一次仅仅是读取一行内容,保存成一个字符串
readlines:一次性将文件的全部内容读取出来,保存成一个列表,每行是一个列表元素
readline 方法可以一次读取一行内容。
⽅法执⾏后,会把⽂件指针移动到下⼀⾏,准备再次读取
readline 方法读取到文件最后,返回长度为 0 的字符串””
案例:计算文件c.txt中一共有几行
file = open("d:/py1/c.txt","r",encoding="utf-8")
n = 0
while True:
str = file.readline()
if len(str) == 0:
break
n += 1
print(n)
2、readlines
-
readline 方法可以一次读取全部内容,返回一个列表,内容的每一行是列的一个元素
# 打开文件 file = open(r"C:filetempa.txt") # text 类型为list,list 中每个成员就是文件a.txt 的每一行 text = file.readlines() # 遍历列表text for n in text: # 显示text 每个成员内容 print(n) # 关闭文件file.close()六、open变种写法
# 原始方法
f = open("a.txt", "r")
text = f.read()
print(text)
f.close()
# 新写法 【不需要手动关闭文件,文件会自动关闭】
with open("a.txt", "r") as f:
text = f.read()
print(text)
1、json模块
json的特点
JSON 是纯文本;
JSON 便于阅读和编写;
JSON 具有清晰的层级结构;
有效地提升网络传输效率;
JSON 语法规则
大括号保存对象;
中括号保存数组/列表;
对象数组可以相互嵌套;
数据采用键值对表示;
多个数据由逗号分隔;
JSON 值
数字(整数或浮点数);
字符串(在双引号中);
逻辑值(true 或 false);
数组(在中括号中);
对象(在大括号中);
示例
{
"name": "tom",
"age": 18,
"isMan": true,
"school": null,
"address": {
"country": "中国",
"city": "河北",
"street": "石家庄"
},
"numbers": [2, 6, 8, 9],
"links": [
{
"name": "zaizhuo",
"url": "http://www.zaizhuo.cn"
},
{
"name": "载卓",
"url": "http://www.zaizhuo.com"
}
]
}
读取json文件
json.load(json文件名)
json.dump(data, f, ensure_ascii=False)
案例:读取json文件
# 导入模块
import json
# 打开文件
f = open('d:/py1/1.json', "r", encoding='UTF-8')
# 读取json文件
data = json.load(f)
# 返回的data 数据类型为字典或列表
print(data)
f.close()
案例:写入json格式数据
import json
data = {'name': 'tom', 'age': 20, 'country': '中国'} f = open('temp.json', 'w', encoding='UTF-8') json.dump(data, f, ensure_ascii=False)
# ensure_ascii=False 代表中文不转义
f.close()



