Python基础学习(已有Java基础)6——文件,异常,存储

一.文件
1.读取文件:with open(‘文件所在路径’) as ‘读取以后文件存放对象’

filename='great.txt'
with open(filename) as file_objects:
    all = file_objects.read()
    print(all)
结果:
wo
shi
ni
filename='great.txt'
with open(filename) as file_objects:
    lines = file_objects.readlines()
print(lines)
结果:['wo\n', 'shi\n', 'ni']
filename='great.txt'
with open(filename) as file_objects:
    all = file_objects.read()
    lines = file_objects.readlines()
    print(all)
print(lines)
结果:
wo
shi
ni
[]

从上面几个例子我们可以得出相关结论
1.1.一次性读取文件中所有的数据 用read()
1.2.分行一次性读取文件,然后将读取到的数据装入到列表中 readlines()。当然你也可以每次读一行 readline
1.3.对于readlines 我们可以从结果看出。会把换行也读出来。如果要去掉,记得在遍历lines的时候加上rstrip()

for line in lines:
    print(line.rstrip())

1.4.对Java而已,每次操作文件的时候我们都要进行close.但对于Python我们一般不这么操作,因为Python一般会自动关闭文件
1.5.看到第三个例子,我们可以大概推断出。我们read()以后这时文件被占用了,再次使用readlines的时候,就读空了。先readlines 再read 的话,read的结果也是空
2.写入文件
2.1.例子

filename='great.txt'
with open(filename,'w') as file_objects:
    file_objects.write('nihao')
    file_objects.write('aaa')
结果:文件great.txt中的内容只有 ‘nihaoaaa’
filename='great.txt'
with open(filename,'a') as file_objects:
    file_objects.write("ddd\n")
    file_objects.write("55")
结果:在原有文件后面先加上ddd 然后换行 加上55

2.2.写入的话,就是在原来的基础上,在open 中添加第二个参数,默认为’r’(读取),可以取值‘w’(写入)这个是覆盖了原来内容,还有一个是‘a’这个也是写入,不过不是覆盖原来内容,而是添加。我们在使用的时候,看代码应该是读取所有写入内容,然后再文件关闭的时候写入
2.3.’\n’表示换行。这个和读出的时候形成了呼应。
二.异常
这个和java中的差不多,语法是: try … except 错误名 …else…

try:
    s=5/0
except ZeroDivisionError:
    print('false')
else:
    print('true')
结果是false

解析:对于try中的语句,如果异常的话执行except中的语句,否则执行else中的语句。当然,和Java一样,Python也有异常大类例如:Exception,BaseException 这样我们就不用知道具体是什么异常了。
三.数据存储(不涉及数据库)
Python使用Json.dump(存储内容,文件对象)和Json.load(文件对象)进行数据的存储和获取

import json
number=[2,3,4,56,99]
filename='jj.txt'
with open(filename,'w') as f_obj:
    json.dump(number,f_obj)
with open(filename) as r_obj:
    result = json.load(r_obj)
print(result)

结果:文件jj.txt存储了[2,3,4,56,99] 。Print输出为[2,3,4,56,99]
1.注意,如果原来文件中有其他数据,直接进行json.dump会覆盖原来的数据。因为我们open的时候用了w
2.如果想同时存储多个数据

import json
data = {
    'name' : 'ACME',
    'shares' : 100,
    'price' : 542.23
}
number=[5,8,9]
filename='jj.txt'
with open(filename,'w') as f_obj:
    json.dump(data,f_obj)
    json.dump(number,f_obj)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值