python基础学习-15

本文详细介绍了Python中的文件操作,包括文件路径(绝对路径和相对路径)、字符编码(如UTF-8、ASCII、GBK等)以及文件操作的步骤(如使用open函数、with语句)。同时涵盖了json序列化与反序列化的使用方法。
摘要由CSDN通过智能技术生成

文件操作

15.1.1 文件路径

文件路径:存放的具体地方(目录层级)

绝对路径:

D:\wenjianwenjian2\moumou.txt
#一般这种就是绝对路径
#就是说任何一个人顺藤摸瓜就能摸到它
​
​

相对路径:

./当前路径
../返回上一层

根据自己的位置去找另外的文件

15.1.2 字符编码

  • 把字符转化成计算机能懂得代码

  • unicode:包含了世界上所有的字符。
    其他的字符编码都是从它身上剥离出来的
    utf-8:互联网强烈要求统一的字符编码
    ASCII:用于欧洲字体
    GBK:用于简体字
    GB2312:用于繁体字

15.2.1 文件操作

把大象放进冰箱分几步:

  • 打开冰箱(为了方便后面的操作)

  • 装大象(主要目的)

  • 关闭冰箱(节省能源)

文件操作分几步:

  • 打开文件(为了方便后面的操作)

  • 操作文件(主要目的)

  • 关闭文件(避免占用资源)

变量名=open('文件路径',操作模式,字符编码)
变量名.操作模式()
变量名.close()

W写入模式
​
f = open('tunk.txt','w',encoding='utf-8')
f.write('大家好我是嘿嘿,这是我写入的第一个文件')
f.close()
# 如果只写文件名默认在当前统计目录下写入文件,文件不存在就直接创建。
​
#write是写入的意思
​
f = open(r'D:\python139\demo1\tunk.txt','w',encoding='utf-8')
f.write('hello world')
f.close()
​
# 防止路径中出现转义字符,使用r取消转义效果。
​
​
f = open(r'./demo1/demo.py','w',encoding='utf-8')
f.write('hello world')
f.close()
​
f = open('../model/all.txt','w',encoding='utf-8')
f.write('hello world')
f.close()
# w 模式 以写的方式打开文件,文件不存在就创建文件,文件存在就清空重写。
a追加模式
f = open(r'./demo1/demo.txt','a',encoding='utf-8')
f.write('1111111')
f.close()
#a 以追加的方式打开文件,文件不存在就创建,文件存在就继续追加内容。
​
r读取方式
​
f = open(r'./demo1/demo.txt','r',encoding='utf-8')
a = f.read()
print(a)
f.close()
# r 以读取的方式打开,文件必须存在,使用read方法读取内容 进行输出
​
w - 以写的方式打开文件,文件不存在就创建文件,文件存在就清空重写
a - 以追加的方式打开文件,文件不存在就创建,文件存在就继续追加内容。
r - 以读取的方式打开,文件必须存在,文件不存在会报错w - 以写的方式打开文件,文件不存在就创建文件,文件存在就清空重写
打开模式效果
r以读方式打开,文件必须存在
w以写方式打开,文件不存在则创建,存在清空原有内容
a以追加模式打开,文件不存在则创建,存在则继续进行写操作
r+以读写模式打开 文件必须存在
w+以读写模式打开文件,不存在则创建,存在清空原有内容
a+追加并可读模式,文件不存在则创建,存在则继续进行写操作
rb以二进制读模式打开 同r
wb以二进制写模式打开 同w
ab以二进制追加模式打开 同a
rb+以二进制读写模式打开 同r+
wb+以二进制读写模式打开 同w+
ab+以二进制读写模式打开 同a+

15.2.2 文件操作便捷方式

with语句,来访问文件,在语句结束的时候会自动关闭文件。

with open(文件名/文件路径,打开模式,字符编码) as 变量名:
    变量.操作方法
​
with open('tunk.txt','w',encoding='utf-8') as f:
    f.write('好好好\n')
    f.write('但是革命尚未成功,同志仍需继续学习\n')
    f.write('项目考察综合能力')
#文件不存在会创建文件,但是目录不存在时不会创建的
​
with open('tunk.txt','r',encoding='utf-8') as f:
    print(f.read())
    #把所有的内容都读取。
    print(f.read(5))
    # 通过设置参数 设置读取的字符长度
    print(f.readline()) 
    # 默认读取第一行
    print(f.readline(3)) 
    #通过设置参数设置读取字符的长度
    print(f.readlines()) 
    #读取每一行的内容,每一行当成一个元素存放在列表中
​
with open('tunk.txt','a',encoding='utf-8') as f:
    f.write('好好好')

15.3.1 json方法

dumps: 把python文件的数据 转存为 json---序列化过程
loads:json数据还原成python数据  反序列化
​
​
​
import json
singer = ['王菲','张杰','周杰伦','薛之谦','刘德华']
print(singer)
print(type(singer))
​
dd = json.dumps(singer)
print(dd)
print(type(dd))
# json数据在python展现-以str的类型展现的
​
jj = json.loads(dd)
print(jj)
print(type(jj))
--------------------------------------------
​
​
# dd = json.dumps(singer)
# f = open('data.json','w',encoding='utf-8')
# f.write(dd)
# f.close()
​
# rf = open('data.json','r',encoding='utf-8')
# data = rf.read()
# print(data)
# jj = json.loads(data)
# print(jj)
# rf.close()
​
with open('data1.json','w',encoding='utf-8') as f:
    json.dump(singer,f)
​
with open('data1.json','r',encoding='utf-8') as rf:
    res = json.load(rf)
    print(res)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值