分享一个简单的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 实现文件的递归拷贝实现代码
Aug 02 Python
Python import自定义模块方法
Feb 12 Python
基于python中的TCP及UDP(详解)
Nov 06 Python
微信跳一跳python辅助软件思路及图像识别源码解析
Jan 04 Python
解决pycharm工程启动卡住没反应的问题
Jan 19 Python
python3通过selenium爬虫获取到dj商品的实例代码
Apr 25 Python
Python格式化字符串f-string概览(小结)
Jun 18 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
十个Python自动化常用操作,即拿即用
May 10 Python
pytorch锁死在dataloader(训练时卡死)
May 28 Python
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 Python
Python实现归一化算法详情
Mar 18 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无限极分类实现的两种解决方法
2013/04/28 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
JS 常用校验函数
2009/03/26 Javascript
js 省地市级联选择
2010/02/07 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
2016/11/10 Javascript
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python实现远程调用MetaSploit的方法
2014/08/22 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
python对绑定事件的鼠标、按键的判断实例
2019/07/17 Python
python pycharm的安装及其使用
2019/10/11 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
python中for in的用法详解
2020/04/17 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
CSS3实现酷炫的3D旋转透视效果
2019/11/21 HTML / CSS
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
学生安全责任书
2014/04/15 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
焦点访谈观后感
2015/06/11 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
Django一小时写出账号密码管理系统
2021/04/29 Python
Go 自定义package包设置与导入操作
2021/05/06 Golang