Python文件的读写和异常代码示例


Posted in Python onOctober 31, 2017

一、从文件中读取数据

#!/usr/bin/env python
with open('pi') as file_object:
  contents = file_object.read()
  print(contents)
 
===================================
3.1415926
 5212533
 2324255

1、逐行读取

#!/usr/bin/env python
filename = 'pi'
with open(filename) as file_object:
  for line in file_object:
    print(line)
 
===================================
3.1415926
 5212533
 2324255
#!/usr/bin/env python
filename = 'pi'
with open(filename) as file_object:
  for line in file_object:
    print(line.rstrip())
==================
3.1415926
 5212533
 2324255

2、创建一个包含文件各行内容的列表

#!/usr/bin/env python
filename = 'pi'
with open(filename) as file_object:
  lines = file_object.readlines()   #readlines()方法是从文件中读取每一行,并将其存储在一个列表中
for line in lines:
  print(line.rstrip())
==============================
3.1415926
 5212533
 2324255

3、使用文件内容

#!/usr/bin/env python
filename = 'pi'
with open(filename) as file_object:
  lines = file_object.readlines()
pi_string = ''
for line in lines:
  pi_string += line.strip()
print(pi_string)
print(len(pi_string))
========================================
3.141592652125332324255
23

二、写入文件

1、写入空文件

#!/usr/bin/env python
filename = 'programming.txt'
with open(filename,'w') as file_object:
  file_object.write("I love programming!")

2、写入多行

#!/usr/bin/env python
filename = 'programming.txt'
with open(filename,'w') as file_object:
  file_object.write("I love programming!\n")
  file_object.write("yes!\n")

3、附加到文件

#!/usr/bin/env python
filename = 'pi'
with open(filename,'a') as file_object:
  file_object.write("I love programming!\n")
  file_object.write("yes!\n")

三、异常

1、使用try-except代码块

#!/usr/bin/env python
 
try:
  print(5/0)
except ZeroDivisionError:
  print("You cant divide by zero!")

这里介绍下异常的有关内容。

Python 异常处理

python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。

什么是异常?

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。

一般情况下,在Python无法正常处理程序时就会发生一个异常。

异常是Python对象,表示一个错误。

当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

异常处理

捕捉异常可以使用try/except语句。

try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它。

语法:

以下为简单的try....except...else的语法:

try:
<语句>    #运行别的代码
except <名字>:
<语句>    #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句>    #如果引发了'name'异常,获得附加的数据
else:
<语句>    #如果没有异常发生

try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。

如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。

如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。

如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。

实例

下面是简单的例子,它打开一个文件,在该文件中的内容写入内容,且并未发生异常:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
try:
  fh = open("testfile", "w")
  fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
  print "Error: 没有找到文件或读取文件失败"
else:
  print "内容写入文件成功"
  fh.close()

以上程序输出结果:

$ python test.py 
内容写入文件成功
$ cat testfile    # 查看写入的内容
这是一个测试文件,用于测试异常!!

实例

下面是简单的例子,它打开一个文件,在该文件中的内容写入内容,但文件没有写入权限,发生了异常:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

try:
  fh = open("testfile", "w")
  fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
  print "Error: 没有找到文件或读取文件失败"
else:
  print "内容写入文件成功"
  fh.close()

在执行代码前为了测试方便,我们可以先去掉 testfile 文件的写权限,命令如下:

chmod -w testfile

再执行以上代码:

$ python test.py 
Error: 没有找到文件或读取文件失败

好了,先介绍这么多,本站有许多关于Python异常的文章,欢迎参阅。

以上就是本文关于Python文件的读写和异常代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Python中enumerate函数代码解析、Python网络编程详解、python数据类型判断type与isinstance的区别实例解析等,有什么问题可以随时留言指出,感谢大家!

Python 相关文章推荐
python获得一个月有多少天的方法
Jun 04 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
Python实现的凯撒密码算法示例
Apr 12 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
python做接口测试的必要性
Nov 20 Python
Numpy之将矩阵拉成向量的实例
Nov 30 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
Python基础类继承重写实现原理解析
Apr 03 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
Apr 20 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 Python
python中如何对多变量连续赋值
Jun 03 Python
Python网络编程详解
Oct 31 #Python
Python中enumerate函数代码解析
Oct 31 #Python
python数据类型判断type与isinstance的区别实例解析
Oct 31 #Python
python中requests库session对象的妙用详解
Oct 30 #Python
Python编程之黑板上排列组合,你舍得解开吗
Oct 30 #Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 #Python
Python进程间通信之共享内存详解
Oct 30 #Python
You might like
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
关于jquery css的使用介绍
2013/04/18 Javascript
jQuery实现类似老虎机滚动抽奖效果
2015/08/06 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
获取url中用&amp;隔开的参数实例(分享)
2017/05/28 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
vue解决跨域路由冲突问题思路解析
2017/11/03 Javascript
vue2.0实现前端星星评分功能组件实例代码
2018/02/12 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
Element Input输入框的使用方法
2020/07/26 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
小结Python用fork来创建子进程注意事项
2014/07/03 Python
python如何实现excel数据添加到mongodb
2015/07/30 Python
高效使用Python字典的清单
2018/04/04 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
python3图片文件批量重命名处理
2019/10/31 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
2014年消防工作实施方案
2014/02/20 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
中标通知书
2015/04/17 职场文书