分享一个简单的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中使用base64模块来处理base64编码的方法
Jul 01 Python
Python 查看文件的编码格式方法
Dec 21 Python
python实现简单神经网络算法
Mar 10 Python
python解决pandas处理缺失值为空字符串的问题
Apr 08 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
Feb 25 Python
Django组件cookie与session的具体使用
Jun 05 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
Python实现图片添加文字
Nov 26 Python
python filecmp.dircmp实现递归比对两个目录的方法
May 22 Python
python爬取招聘要求等信息实例
Nov 20 Python
浅析python中特殊文件和特殊函数
Feb 24 Python
OpenCV项目实践之停车场车位实时检测
Apr 11 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下常用正则表达式整理
2010/10/26 PHP
解析获取优酷视频真实下载地址的PHP源代码
2013/06/26 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
PHP内置加密函数详解
2016/11/20 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
js监听滚动条滚动事件使得某个标签内容始终位于同一位置
2014/01/24 Javascript
js常用数组操作方法简明总结
2014/06/20 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
js闭包用法实例详解
2016/12/13 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
浅谈Vue2.0父子组件间事件派发机制
2018/01/08 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
小程序Request的另类用法详解
2019/08/09 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
Django model反向关联名称的方法
2018/12/15 Python
python写程序统计词频的方法
2019/07/29 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
Python如何定义有默认参数的函数
2020/08/10 Python
物业管理员岗位职责范文
2013/11/25 职场文书
车间副主任岗位职责
2013/12/24 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
打架检讨书
2015/01/27 职场文书
2015年征兵工作总结
2015/07/23 职场文书
windows系统搭建WEB服务器详细教程
2022/08/05 Servers