首页 > 编程语言 > 详细

python文件操作及异常处理

时间:2019-06-14 11:29:54      阅读:138      评论:0      收藏:0      [点我收藏+]

一、python文件的简单操作

1、任何时候使用文件必须先打开文件,一般私用with open进行操作,单单使用open可能某些时候忘了关闭文件。

2、文件路径需要明确,当使用多个文件夹进行模块化调用的时候,还需要拼接路径,找到父路径。

3、全部加载与逐行读取

4、文件写入

******文件操作********
#文件打开和读取方法
path = H:\mods.txt
with open(path,encoding=utf8) as file_object:   #用with打开文件,必要时需要定义字符集
    file_object = file_object.read()              #read读取文件内容(大文件时不推荐这种方式)
    print(file_object.strip())                    #strip 去除两端的空白,当然还有rstrip() lstrip()

path = H:\mods.txt
with open(path, encoding=utf8) as file_object:
    file_object = file_object.readlines()
    for line in file_object:                       #按行读取,读一行打印一行,不占用内存,大文件可用
        print(line.strip())
#文件写入方法
1、‘w’ 写入时会删除文件中原有的内容重新写入
  ‘w+’只写不读
with open(test,w,encoding=utf8) as file_object:
    file_object.write(oracle是关系型数据库,redis是非关系型数据库\n)          #不要忘记指定换行符\n
    file_object.write(i love you\n)

#>>>oracle是关系型数据库,redis是非关系型数据库
#        i love you

2、‘a’ (append) 在原本内容基础上追加内容  
   a+只加不读
with open(test,a,encoding=utf8) as file_object:
    file_object.write(oracle是关系型数据库,redis是非关系型数据库\n)
    file_object.write(i love you\n)

#>>>oracle是关系型数据库,redis是非关系型数据库
#        i love you
#       oracle是关系型数据库,redis是非关系型数据库
#        i love you

3、‘r+’ 可写可读
with open(test,r+,encoding=utf8) as file_object:
    file_object.write(oracle是关系型数据库,redis是非关系型数据库\n)
    file_object.write(i love you\n)
    for line in file_object:
        print(line.strip())

 

二、异常处理

except: #捕获所有异常

except: <异常名>: #捕获指定异常

except:<异常名1,异常名2):捕获异常1或者异常2

except:<异常名>,<数据>:捕获指定异常及其附加的数据

except:<异常名1,异常名2>:<数据>:捕获异常名1或者异常名2,及附加的数据库

常用异常名:

异常名    描述
AttributeError 调用不存在的方法引发的异常
EOFError     遇到文件末尾引发的异常
ImportError 导入模块出错引发的异常
IndexError     列表越界引发的异常
IOError     I/O操作引发的异常,如打开文件出错等
KeyError   使用字典中不存在的关键字引发的异常
NameError 使用不存在的变量名引发的异常
TabError 语句块缩进不正确引发的异常
ValueError 搜索列表中不存在的值引发的异常
ZeroDivisionError   除数为零引发的异常

例:

while True:
    a,b= input(a/b)
    try:
        an = int(a) / int(b)
    except ZeroDivisionError:     #除数不为0异常
        print(b is not 0)    #用pass可以不显示错误,但这并不是该用的
    else:                         
        print(an)          #如果没有异常则运行

 

python文件操作及异常处理

原文:https://www.cnblogs.com/zsf-note/p/11022270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!