一,文件的相关问题
1,with open()方法的解释
当我们需要使用一个文件时,必须打开这个文件,哪怕是打印其内容。打开一个文件时,我们通常使用open()来打开这个文件,当python打开文件后,我们需要在合适的地方对它进行关闭,这就用到了close()方法,但是若是过早的使用close()方法,可能在代码运行过程中出现错误,若是不运行close()方法,会造成文件无法关闭,这看起来微不足道,但是有可能会使数据受损或者丢失,造成难以想象的后果,这时关键字with就发挥了他的作用。
with关键字的使用会在open()方法实施后,python自动的在适合的位置对文件进行关闭。
with open("demo.text")as f:
pass
格式像上图一样,当打开文件后,将demo.txt赋值给f,方便以后的操作。
(1)open()调用时可以传入两个实参。第一个实参是在告诉python打开了什么文件,第二个实参则决定了接下来的模式。打开文件时可以通过第二个实参来调整 :写入模式(“w”)附加模式(“a”)读写模式(“r+”)以及读取模式(“r”),当不指定参数时,python默认以读取模式打开文件。
为了后续操作方便我指定demo.txt文件的内容为“hello world”
fileame="demo.txt"
with open(fileame,'w') as f:
f.write("I love python.")
f.write("Have a nice day.")
当我们进行上面的操作后,我们再打开demo.txt时会发现
I love python.Have a nice day.
被写入的字符串在一起,没有空格或者换行符将其隔开。这是因为write()方法不包含换行符,如果我们想要内容变得更加美观,我们可以选择在后面加上\n换行符进行换行。
(‘w’)模式会覆盖掉原文件的内容,如果我们不想覆盖,而是在原文件上对它进行叠加,我们需要进入(‘a’)附加模式,对其进行操作。
fileame="demo.txt"
with open(fileame,'a') as f:
f.write("I love python.\n")
f.write("Have a nice day.\n")
此时如果我们打开文件,就会发现文件变为了
hello world
I love python.
Have a nice day.
它们会被添加在demo.txt的末尾。
(2)我们在open()一个文件时,对于文件的地址一定更要写对,不然python以没找到该文件的理由而报错。
我们若是想要更加准确的让python来获取该文件时,可以传入绝对文件路径来获取。
with open("text_demo/demo.txt")as f:
pass
如上图可知,要在text_demo文件夹中找demo.txt。
二,异常的相关问题。
(1)处理ZeroDivisionError异常
当我们去将0作为除数时,会出现以上的异常,我们可以使用一些方法来解决这个异常,使得代码可以继续运行下去,而不是就此终止。
利用try-except(else)模块就可以解决这个问题
try:
print(8/0)
except ZeroDivisionError:
print("Are you kidding me?!")
下面是有else的情况
try:
answer=8/0
except ZeroDivisionError:
print("Are you kidding me?!")
else:
print(answer)
当代码有错误时会运行expect的内容,而当代码无错误时可以输出运行结果(直接通过try的操作输出或者通过else的操作输出)。
这种方法可以运用到计算器里面去,以防异常使之崩溃。
这个模块可以大幅度提高你代码的安全性,以防不怀好意的黑客看见这个漏洞时对你的代码进行攻击,使其崩溃。
(2)处理FileNotFoundErrror异常问题
当我们打开一个不存在的文件时,就会触发这个异常,相同的我们可以通过try-except模块来处理异常。
现在假设demo.txt文件并不存在
try:
with open('demo.txt') as f:
r=f.read()
except FileNotFoundError:
print(“Sorry , I can't found it.”)
这就完美的处理了这种情况,异常问题的处理可以为我们带来很大的便利,在以后的编程生活中相信你会深有体会。