分享一个简单的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 相关文章推荐
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
从请求到响应过程中django都做了哪些处理
Aug 01 Python
Python识别快递条形码及Tesseract-OCR使用详解
Jul 15 Python
在linux系统下安装python librtmp包的实现方法
Jul 22 Python
pandas 对日期类型数据的处理方法详解
Aug 08 Python
关于PyTorch源码解读之torchvision.models
Aug 17 Python
关于Python Tkinter Button控件command传参问题的解决方式
Mar 04 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
Python文件名匹配与文件复制的实现
Dec 11 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
Feb 01 Python
浅谈python中的多态
Jun 15 Python
Python自动化测试PO模型封装过程详解
Jun 22 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中get_object_vars()方法用法实例
2015/02/08 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
laravel自定义分页效果
2017/07/23 PHP
简单实用的PHP文本缓存类实例
2019/03/22 PHP
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
Python生成器(Generator)详解
2015/04/13 Python
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
linux 下selenium chrome使用详解
2020/04/02 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
会计实习期自我鉴定
2013/10/06 职场文书
酒店经理职责
2014/01/30 职场文书
女性健康讲座主持词
2015/07/04 职场文书
2016年党员承诺书范文
2016/03/24 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
HTML基础详解(上)
2021/10/16 HTML / CSS
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫
Nginx 匹配方式
2022/05/15 Servers