第十章:文件和异常

with open('text_files'\'wenjian.txt') as wenben:#这里分号只要一对就行,text_files是文件在python_work文件夹中即跟现在运行的文件一样目录
    pai = wenben.read()'''wenben是变量,read是python中的函数'''
print(pai)


f = 'text_files\wenjian.txt'  #文件调用都是以字符串来录入,所以圆周率数字可以输出
with open(f) as wenben:
   for line in wenben:# 可以给常量然后循环输出
       print(line)
'''3.16545649换行符(你看不见的,但是程序当字符串输出时又算入的)
    5454646464换行符   输出时的会发现多出2行空行,一个来自文件本身,一个来自print的
    skdjsdjg换行符.  除非用strip()函数'''


f = 'text_files\wenjian.txt'
with open(f) as wenben:#将一个表示文件内容的对象存储到了变量wenben中。
    lines = wenben.readlines() #readlines 从文件中读取每一行,并将其存储在常量lines作为列表
for line in lines:             #且用了它,原来的文件里的值被改变了
       print(line.strip()) '''【如果这里输出不用strip,则会是空1行的3行,因为文本里隐藏一个换行符,又因为for会自动换行,所以会空2行】'''
#使用with时,open()返回的对象类只在with代码块中使用


f = 'text_files\wenjian.txt'
p = ''
with open(f) as wenben:
    lines = wenben.readlines()
for line in lines:
    p = p+line   #3.14564646【换行符】46415346【换行符】6446446【换行符】此时输出会变成3行, 如果用函数strip.()变成完整一串
print(p) 

#f = 'F:\编程f\python_work\text_files\wenjian.txt'{绝对路径访问,这里有可能出错了,待纠正}   

f = 'text_files\wenjian.txt'
with open(f,'w') as lei:
    lei.write('i love you')#’r‘'w''r+'运行后会把你的原来文件的内容替代掉,小心使用,而'a'是附加模式。写入模式下如果你要写入的文件不存在,
    #open函数会帮你创建文件,'''如果文件已经存在则将返回文件对象前清空该文件'''不太理解?【解决:因为open会返回一个文件对象,但如果你在w写如模式下
    #,python发现要打开的文件已经存在,则会清空文件中的内容再返回文件对象给你】
    #write函数写入下不会帮你增加换行符


'''try-except的用法,避免异常'''    
print('calcuate')
while True:
   
        a=input('please enter a number:')
        if a == 'q':
            break
        b=input('please enter second number:')
        if b == 'q':
            break
        try:#觉得有可能引发异常的代码从放在try中
            c=int(a)/int(b)
        except ZeroDivisionError:#注意缩进,except告诉出现程序出错该干什么
            print('you can dicide by zero')#这里改成pass,程序会一声不吭,不告诉出错
        else:
            print(c)#程序无异常就把正确输出放在else中提高抵御能力
'''有一种文件异常,就把try放在open函数前,except FileNotFoundError:'''

import json
number = [2,3,4,56,4]
f = 'number.json'  #f 是json模块中的一个文件,这里是把数字列表存储到到这个文件中,在这之前创建文件名为
#'number.json',f是个变量
with open(f,'w') as n #(可以看作用了as来重名文件)实际是把对象赋值给变量
    json.dump(number,n)#json.dump把number的数据存在n文件中,也就是文件number.json中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值