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中
第十章:文件和异常
最新推荐文章于 2022-11-19 16:30:29 发布