分享一个简单的python读写文件脚本


Posted in Python onNovember 25, 2017

先来看一段创建文件并写入文本的代码,然后作介绍。

#!/usr/bin/env python 
   
  'makeFile.py -- create a file' 
   
  import os 
  ls = os.linesep 
   
  # get filename 
  while True: 
    fname = raw_input('Input an unused file name >') 
    if os.path.exists(fname): 
      print "ERROR: '%s' already exists" %fname 
    else: 
      break 
   
  # get file content lines 
  all = [] 
  print "\nEnter lines (input '.' to quit).\n" 
   
  # loop until user terminates input 
  while True: 
    entry = raw_input('>') 
    if entry == '.': 
      break 
    else: 
      all.append(entry) 
   
  # write lines to file with proper line-ending 
  fobj = open(fname, 'w') 
  fobj.writelines(['%s%s' %(x, ls) for x in all]) 
  fobj.close() 
  print 'DONE' 
   
  if __name__ == '__main__': 
    print 'innter module'

上面的代码用来创建一个新文件并写入文本,第6行给os模块中的linesep起了给别名ls,这样做的好处一方面简化了长长的变量名,另一方面也是主要原因用于提高代码性能,因为访问这个变量时首先要检测os模块,然后再解析linesep,linesep是行结束符标志,linux下是'\r',windows下是'\r\n',用本地变量保存更好。第34行使用了__name__,这主要用于代码内测试,它的值是__main__,但python文件通常作为模块被其它文件import,这时__name__的值是这个模块名,就不会执行模块内的测试代码了。

#!/usr/bin/env python 
   
  'readFile.py -- read and display file' 
   
  # get filename 
  fname = raw_input('Enter filename >') 
  print  
   
  # attempt to open file for reading 
  try: 
    fobj = open(fname, 'r') 
  except IOError, e: 
    print "***** file open error:", e 
  else: 
    # display contents to the screen 
    for eachLine in fobj: 
      print eachLine, 
    fobj.close()

上面的代码用来读文件并显示其内容到屏幕上,使用了try-except-else异常处理机制。

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

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

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

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

总结

以上就是本文关于分享一个简单的python读写文件脚本的全部内容,希望对大家有所帮助。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
PyQt5每天必学之像素图控件QPixmap
Apr 19 Python
python线程中同步锁详解
Apr 27 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
Python爬取成语接龙类网站
Oct 19 Python
对python3标准库httpclient的使用详解
Dec 18 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
Python爬虫:将headers请求头字符串转为字典的方法
Aug 21 Python
Python中函数的返回值示例浅析
Aug 28 Python
Python shutil模块用法实例分析
Oct 02 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
python 字典和列表嵌套用法详解
Jun 29 Python
python之virtualenv的简单使用方法(必看篇)
Nov 25 #Python
python多进程实现进程间通信实例
Nov 24 #Python
Python实现列表删除重复元素的三种常用方法分析
Nov 24 #Python
Python二叉树的定义及常用遍历算法分析
Nov 24 #Python
详解python上传文件和字符到PHP服务器
Nov 24 #Python
Python实现矩阵转置的方法分析
Nov 24 #Python
利用Django内置的认证视图实现用户密码重置功能详解
Nov 24 #Python
You might like
PHP开发文件系统实例讲解
2006/10/09 PHP
php _autoload自动加载类与机制分析
2012/02/10 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
用于table内容排序
2006/07/21 Javascript
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
jquery text()要注意啦
2009/10/30 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
详解vue-cli3使用
2018/08/14 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
django数据库migrate失败的解决方法解析
2018/02/08 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
2014年环卫工作总结
2014/11/22 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
小学校长开学致辞
2015/07/29 职场文书
Java并发编程之原子性-Atomic的使用
2022/03/16 Java/Android
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers