有的小伙伴在使用python的时候总是想实现简单的存档功能。我查阅了一下网上的资料,发现很多教程都是把方法列举出来,然后便一笔带过,导致有些python小白们不知其原理,那么接下来我就介绍python中最简单易懂的(对于我个人来说).txt格式存档法。
首先我们要导入库
from os import close, read #这里的close是关闭文件,read是读取文件
然后新建一个.txt文件
wj=open('C:\Users\Public\Documents\存档.txt','a')
#这里的'wj'是可以改变的,文件路径尽量选择C盘下的公共文件夹,毕竟如果换台电脑情况就不一样了
一定记住要在文件后面加上.txt后缀名!!!
有的人可能会有疑惑了,这个'a'是什么意思呢?
其实很简单啊,大家都知道在print()输出中,加上'n'就是换行输出,那么在这里,'a'也代表一种模式,具体的代码很多,就不一一详细展开了,这里给大家整理一个简单的表格(不过隔壁也有,还更加明了,如果看完不懂得可以去看看)
| 'r' | 只读模式,不可使用write('写入内容'),且文件必须已存在 |
| 'a' | 如果文件不存在,则创建一个新的文件;如文件已存在则将输入光标放在文本末尾 |
| 'w' | 只写模式,故名思意。如果文件不存在,则创建一个新的文件;如文件已存在则将文件内的文本清空,重新写入 |
使用'a'是为了创建一个新文件,接下来为了防止意外发生,我们要关闭文件
wj.close() #如果你在前面改了这个wj=opne(),那么你现在也应该用你改过的
然后再次打开文件,不过这次我们用'r'模式
wj=open('C:\Users\Public\Documents\存档.txt','r')
这时候你就可以开始输出语句了,比如一句开始语,有两种方式输出文件里的内容
#1
cd=wj
print('当前存档'+cd+'n')
#给cd赋值,这样更加有利于重复使用
#2
print('当前存档'+wj.read()+'n')
记得把文件关闭!!!
wj.close()
接下来我们询问需要的操作,如新存档,继续当前存档等等
xz=input('你想要?n1.新存档n2.继续n')
这里要弄清楚,新存档是清空已存在的内容,刚刚好用上前面表格里的'w'只写模式;而继续是不需要对文件进行更改的,只需要反馈一下就可以了
if xz=='1':
wj=open('C:\Users\Public\Documents\存档.txt','w')
wj.write('1')
#write('1')就是往文件里写入1这个数字,你也可以自定义里面的内容
wj.close()
elif xz=='2':
print('继续')
下面你就可以写自己的代码啦,在需要存档的时候只需要插入这一段代码就可以了
wj=open('C:\Users\Public\Documents\存档.txt','w')
wj.write('存档内容')
wj.close()
wj=open('C:\Users\Public\Documents\存档.txt','r')
cd=wj.read()
wj.close()
#不要嫌代码多,要是这里的write()和read()放在一起,是会报错的哦
下面是我写的一个示例
from os import close,read
import time #这个库纯属我用来装饰的,对应下面的time.sleep(),意思是等待n秒
wj=open('C:\Users\Public\Documents\存档.txt','a')
wj.close()
wj=open('C:\Users\Public\Documents\存档.txt','r')
print('当前存档'+wj.read()+'n')
wj.close
xz=input('你想要?n1.新的开始n2.继续n')
if xz=='1':
wj=open('C:\Users\Public\Documents\存档.txt','w')
wj.write('1')
wj.close()
elif xz=='2':
print('继续')
wj=open('C:\Users\Public\Documents\存档.txt','r')
cd=wj.read()
#输出时不能直接print(wj),而是要用其它字母赋值后再来输出,不然会报错
wj.close()
print('加载中...n')
if cd=='1':
print('测试1')
print('存档')
wj=open('C:\Users\Public\Documents\存档.txt','w')
wj.write('2')
wj.close()
wj=open('C:\Users\Public\Documents\存档.txt','r')
cd=wj.read()
wj.close()
if cd=='2':
print('测试2')
time.sleep(5)
exit()



