Python基础 笔记12

一、笔记说明

  1. 本博客专栏《Python基础》的所有笔记均为.py格式文件,复制后均可无误执行(注意修改文件路径,每个人的工作区不一样)。
  2. 在复制代码时,若代码段标明了文件名称,即该笔记包含多个文件,请注意每个代码段标明的文件名称,并在本地创建文件夹以便于运行。
  3. 代码运行环境Python3.7.9,建议使用Pycharm2020.1作为编辑器,使用Anaconda3作为包管理器。

二、代码部分

# Python笔记14.py

print("1.r模式:只读")#写为w,和C语言一样
f=open("test.txt","r")#打开文件,以f接收
print(f.read())#读取内容
f.close()#关闭文件

print("2.w+模式:可读可写入字符串,其他数据类型无法写入,不可追加")
f=open("test.txt","w+")#打开文件,以f接收
f.write("8888888")#全部覆盖
f.seek(0)#跳回开头读取数据0
print(f.read())#读取内容
f.writelines("4d3s4\n4354fg\n46ger")#全部覆盖,多行输入
f.seek(0)#跳回开头读取数据
print(f.read())#读取内容tell
f.writelines(["**5453**","**646gjm**"])#writelines可以写入字符串列表
f.seek(5)#跳回开头读取数据,单位为bytes,字
print(f.tell())#输出指针(游标)位置
print(f.read())#读取内容
f.close()#关闭文件

print("3.a+模式:可读可写入可追加字符串,其他数据类型无法写入")
f=open("test.txt","a+")#打开文件,以f接收
f.seek(0)
print(f.readline(5))#在指针所在行读取5个字符,默认读取一行
print(f.readlines())#读取多行,默认全部读取
f.seek(0)
print(f.readlines(2))#两行
f.close()

print("4.wb+模式:可读可写入可追加二进制数据")
f=open("test.txt","wb+")#打开文件,以f接收
f.write(b"123")
f.seek(0)
print("输出二进制数据:",f.read())
f.close()

print("5.内存假文件:虚拟文件")
print("5.1:字符串数据")
import io
sio=io.StringIO()
sio.write("1233")#保存虚拟文件
print(sio.getvalue())#读取虚拟文件

print("5.2:二进制数据")
sio=io.BytesIO()
sio.write(b"12312")
print(sio.getvalue())
print(sio.getvalue().decode())#进一步对二进制数据解码

print("6.Python文件的上下文管理:自动保存 & 关闭文件,可一次对多个文件操作")
with open("test.txt","r+") as f,\
        open("test2.txt","w+") as f1:#'\'为换行符
    a=f.read()
    print(a,type(a))
    f1.write(a)

print("7.对文件目录/文件操作模块:os")
import os
print("当前文件路径:",os.getcwd())
print("当前文件夹内容:",os.listdir("C:\\Users\\kchacker\\Desktop\\工作区\\Python"))
#注意:此处的斜杠方向相反

print("7.1其他os模块的目录及文件操作:")
# os.chdir()#更改当前路径
# os.mkdir()#创建目录
# os.rmdir()#删除目录
# os.system()#使用Linux命令,执行虚拟机内的命令
# os.remove()#删除文件
# os.rename()#文件重命名
# os.makedirs() #用于递归创建多层目录,如果该目录已存在抛出异常
# os.removedirs() #递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常
# os.curdir #指代当前目录( . )
# os.pardir #指代上一级目录( .. )
# os.sep #输出操作系统特定的路径分隔符(win下为 \\ ,Linux下为 / )
# os.linesep #当前平台使用的行终止符(win下为 \r\n ,Linux下为 \n )
# os.name #指代当前使用的操作系统(包括:'mac','nt')

print("8.os.path模块:")
# os.path.join()#路径拼接
# os.path.dirname()#所在目录/父级目录
# os.path.basename()#基本路径
# os.path.abspath()#绝对路径
# os.path.relpath()#相对路径
# os.path.getsize()#资源大小(返回字节)
# os.path.getatime()#资源时间(访问)
# os.path.getctime()#资源时间(创建)
# os.path.getmtime()#资源时间(修改)
# os.path.exists()#路径是否存在
# os.path.isdir()#是否是目录
# os.path.isfile()#是否是文件
# os.path.isabs()#是否是绝对路径
# os.path.islink(path) #判断指定路径是否存在且是一个符号链接
# os.path.ismount(path) #判断指定路径是否存在且是一个悬挂点
# os.path.samefile(path1,path2) #判断path1和path2两个路径是否指向同一个文件
# os.path.split(path) #分割文件名与路径,返回 (f_path,f_name) 元组,
# 如果完全使用目录,它会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
# os.path.splitext(path) #分离文件名与扩展名,返回 (f_path,f_name) 元组
print("当前文件路径:",os.getcwd())
os.path.join("Python","1223654")
print("当前文件路径:",os.getcwd())

print("9. pickle模块实现Python数据序列化")
import pickle

dataList = [
    [1, 1, 'yes'],
    [1, 1, 'yes'],
    [1, 0, 'no'],
    [0, 1, 'no'],
    [0, 1, 'no']
]

dataDic = {
    0: [1, 2, 3, 4],
    1: ('a', 'b'),
    2: {'c': 'yes', 'd': 'no'}
}

# 使用dump()将数据序列化到文件中
fw = open(r'./dataFile.pkl', 'wb')
pickle.dump(dataList, fw, -1)
pickle.dump(dataDic, fw)
fw.close()

# 使用load()将数据从文件中序列化读出
fr = open(r'./dataFile.pkl', 'rb')
data1 = pickle.load(fr)
print(data1)
data2 = pickle.load(fr)
print(data2)
fr.close()

三、转载说明

  1. 本文内容完全原创,文章完成时间2021.3.17。
  2. 若要转载本文,请在转载文章末尾附上本文链接:https://blog.csdn.net/qq_35772105/article/details/114919515
  3. 本文代码部分唯一MD5:EA3ECF776B2E8CC6CAE2F76764C74D10。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔菲赫伯特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值