day 10

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')

你可能感兴趣的:(day 10)