python进阶篇:如何进行存档!粉丝特辑!

 

 

python进阶篇:如何进行存档!粉丝特辑!

大家好!制作不易,请求赞赏!

大家一般在制作游戏的时候,都很想制作存档这个功能,但到底怎么做呢?

下面就告诉大家!


1.1基本文件操作

为什么要学这个呢?

因为在实际运行时,系统每一次运行都会进行初始化的操作,所以我们需要将想要保存的东西写入文件,想要的时候就可以读取了!

先了解一下基本操作!

1.1.1创建和打开文件

file = open(filename[,mode[,buffering]])

参数说明:

  • file:被创建的文件对象。
  • filename:要创建或打开的文件名称。(要用引号括起来!)
  • mode:可选参数,用于指定文件的打开方式。
    表1.1mode参数说明
    说明 注意
    r 只读 文件必须存在
    rb 二进制,只读
    r+ 读或写(从开头开始覆盖)
    rb+ 二进制,读写
    w 只写 文件存在,则覆盖,否则创建新文件
    wb 二进制,只写
    w+ 先清空,再读写
    wb+ 二进制,读写
    a 追加模式(如果文件存在,文章指针放在末尾,如果不存在,则创建一个新文件)  
    ab 二进制,追加模式(见上),只写  
    a+

    读写,追加模式

     
    ab+ 二进制,追加模式,读写  

buffering:可选参数,0为不缓存,1为缓存,1以上表示缓冲区大小。(默认为缓存)

1.1.2open()

1.打开一个不存在文件时先创建一个

方法:

  • 在当前目录下创建
  • 指定mode参数值(如w,w+,a,a+)

2.二进制?!

为什么要用二进制?

因为在打开图片,视频,音频的时候,python识别不出来就会打不开,所以用电脑熟知的二进制就可以确保成功打开!

1.2关闭文件

其实关闭文件很简单:

file.close()

用close函数就可以实现

这里一定注意!!!一定要在打开文件后关闭!!!不然会导致一系列问题!!!

怕记不住?!

看下面!!!

1.3with语句

with语句很简单,而且它能在执行完代码后自动关上!

轻松简单!大佬必备!

with expression as target:
    with-body

参数说明:

  • expression:制定一个表达式
  • target:指定一个变量
  • with-body:指定with语句体,不需要的话用pass带过

1.4写入文件

file.write(str)

str就是想要写入的内容,要有引号哦!

1.5读取文件 

file.read([size])
#读取指定字符,返回字符串

file.readline
#读取一行,返回字符串

file.readlines
#读取全部行,返回列表

size为要读取的字符数目,不写则默认全读。

现在我们基本了解了文件的基本功能,可以学习到底怎样存档了!

2.1如何存档

先给大家看一下我写的游戏中的部分代码,大家就有一定了解了(文件名经过处理)。

#在程序开始,读取文件
with open('D:\people.data.txt', 'r') as peopledata :
    peopleline = peopledata.readline().strip(' ')
    peoplestr = peopleline.split(' ')
    people_list = peoplestr
with open('D:\coins.data.txt', 'r')as coinsdata :
    coinsline = coinsdata.readline().strip()
    coinsstr = coinsline.split(' ')
    coins_list = coinsstr
with open('D:\password.data.txt', 'r') as passworddata :
    passwordline = passworddata.readline().strip()
    passwordstr = passwordline.split(' ')
    password_list = passwordstr
#在程序最后,写入文件
with open('D:\people.data.txt','w+') as peoplewrite:
            for peo in people_list:
                peoplewrite.write(peo ,' ')
        with open('D:\coins.data.txt','w+') as coinswrite:
            for coi in people_list:
                coinswrite.write(coi ,' ')
        with open('D:\password.data.txt','w+') as passwordwrite:
            for pas in people_list:
                passwordwrite.write(pas ,' ')

split和strip函数,详见我之前的博客。

是不是有点眉目了?

先在程序开头读取,用split和strip函数将无用字符去除,在将其存入列表里,再在程序最后写入,用空格隔开,以免名字连到一起,就实现了程序的存档。

会了吗?记得点赞关注哦,期待和大家一起学习哦!

 

你可能感兴趣的:(笔记,python,游戏)