part 1 文件操作
所有文件:打开文件,-->操作文件(读/写)-->关闭文件
1.打开文件:(open(文件路径,打开方式,编码方式)
文件路径(必写)--->决定打开哪个文件
打开方式(默认值是‘r’)-->决定打开文件后是进行什么样的操作。
‘r’-->读操作(读出来是字符串) | ‘rb’/'br'--读出来的数据是二进制 | ‘w’--> 写操作(将文本数据些入文件中) | ‘wb’/'bw'-->将二进制数据些入文件中。 | ‘a’-->写操作,(追加) |
---|
编码方式-->主要针对文本文件的读写(不同的操作系统编码方式不同,windows--gbk
utf-8)
2.文本文件的读写
a。放在工程外面的文件,写绝对路径:
b.将文件放到工程目录下某个位置(写相对路径相对于工程目录)或者当py文件直接放在工程目录下,想要使用open打开工程中的其他文件
当py文件在工程目录的子目录下面,想要使用open打开工程其他中的其他文件。.
f = open('./I:\day9-python','r',encoding='utf-8')#打开文件,返回文件句柄(文件代言人)
2读文件就是获取文件的内容
#文件.read(n):获取文件内容,n是设置读的长度
content = f.read()
print(content)
f.close()#关闭文件
写文件
f=open(test.txt,'a',encoding= 'gbk') #w在写的时候,会清空文件中原来的内容,在往里面写数据。
print(type(f))
f.write('疑是地上霜') #'a'是在源文件后面添加新的数据
f.close()
#以读的方式打开文件,如果文件不存在,会报错
#以写方式打开不存在的文件,会自动创建这个文件。
二进制文件读写操作
音频、视频、图片文件都是二进制文件。
f = open(./url,'rb')
image_data = f.read()
#bytes:python中二进制对应的数据类型
print(image_data)
#二进制文件的写操作
f = open(./,'wb')
f.write(imade_data)
f.close
with关键字去打开文件 格式如下
# with open(url,) as 文件变量名:
# 文件操作
#在文件操作结束后自动关闭文件。
with open(./ url,'rb') as f:
mp4_data = f.read
part 2 模块管理和类
1、什么是模块:一个.py文件就是一个模块
2、import:通过import来导入其他的模块
格式:import 模块名
直接导入模块的时候相当于把模块里面的内容粘贴到了import的位置
3.怎么使用模块中的内容?什么内容可以使用?
模块名.的方式去使用模块中的内容
在模块中声明的全局变量都可以使用(普通变量、函数、类)
4.from 模块 import 内容1,内容2,。。。。
使用内容的时候不用在被导入的变量或者函数或者类钱加模块名
5.阻止被导入的模块中不必要的代码粘贴到当前模块
一般情况下,除了函数的声明和类的声明以外,其他的代码都放到if里面name:是每个模块自带的属性,作用是来保存当前这个模块名字的。但是当正在执行当前模块的时候,属性的值是一个固定的_main_
6.重命名
导入模块的重命名
import 模块名 as 新的名字
from 模块名 import 函数名 as 新的名字
import math as my_math
print(my_math.pi)
from random import randint as my_rang
print(my_rand(1,10))
from other import func_other
import other
if __name__ == '__main__': #在这写当前模块中不需要被其他模块导入
#这个里面的代码不会被其他模块使用
pass
part 3
json文件(文本),就是文件后缀.json的文件。
内容必须是json格式
json格式:
内容是字符串 | 最外层是字典,字典里面就必须是键值对 | 最外层是数组(列表),数组里面的内容必须是数组数据 |
---|
json是Python中内置的模块,专门用来处理json数据的
import json
if __name__ == '__main__':
1.json文件的读操作
with open('./C:\Users\liulu\.PyCharmCE2018.1\config\scratches\scratch.json','r',encoding='utf-8') as f:
#直接使用read方法去读,获取的是字符串的数据,包含了json文件中的所有部分,包括注释。
#conten = f.read()
#print(conten,type(conten))
load(文件对象):获取指定json文件中的内容
content = json.load(f)
print(content,type(content),content['成绩'][1])
dict--dict
array--list
string--->str
number -->int/float
true/false--->True/False
null-->None
2.json文件的写操作
with open(./url,'w',encoding='utf-8')
#写数据
w_content = 'abc'
json.dump(w_content,f)
3json模块的其他操作
loads(字符串,编码方式)--》将指定的字符串json格式的字符串转换成json数据
将字符串转换成字典/将字符串转换成列表
content = json.loads("abc",encoding='utf-8')
print(content,type(content)
#json.dumps()
# 将json对象转换成json字符串
# 字典、列表转换成json字符串
json.dumps(['aaa'],1,True)
print(content,type(content))
part 4 异常捕获
出现错误的时候,不想让程序崩溃,就可以进行异常捕获。
try:
需要捕获异常的代码
except 错误类型:
捕获到指定的错误异常才会执行的代码
if __name__ == 'main__':
try:
with open('./aaa.txt') as ff:
print('打开成功')
except FileNotFoundError:
print('=====')
open('./aaa.txt','w')