分享一个简单的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 相关文章推荐
Python tkinter事件高级用法实例
Jan 31 Python
python队列queue模块详解
Apr 27 Python
python 高效去重复 支持GB级别大文件的示例代码
Nov 08 Python
5分钟 Pipenv 上手指南
Dec 20 Python
python后端接收前端回传的文件方法
Jan 02 Python
python Django里CSRF 对应策略详解
Aug 05 Python
python求绝对值的三种方法小结
Dec 04 Python
Python+Opencv身份证号码区域提取及识别实现
Aug 25 Python
Python 转移文件至云对象存储的方法
Feb 07 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 Python
Matlab如何实现矩阵复制扩充
Jun 02 Python
Python基础之变量的相关知识总结
Jun 23 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生成数组再传给js的方法
2014/08/07 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
vue中的使用token的方法示例
2020/03/10 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
python进程管理工具supervisor使用实例
2014/09/17 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
python多线程使用方法实例详解
2019/12/30 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
Python插件机制实现详解
2020/05/04 Python
Keras 使用 Lambda层详解
2020/06/10 Python
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
XML文档面试题
2015/08/05 面试题
数控专业推荐信范文
2013/12/02 职场文书
班组长岗位职责范本
2014/01/05 职场文书
二年级体育教学反思
2014/01/15 职场文书
大学生心理活动总结
2014/07/04 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书
大学副班长竞选稿
2015/11/21 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis