分享一个简单的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实现BT种子和磁力链接的相互转换
Nov 09 Python
python如何查看系统网络流量的信息
Sep 12 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
django站点管理详解
Dec 12 Python
python3实现随机数
Jun 25 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
Python3 pandas 操作列表实例详解
Sep 23 Python
解决pyshp UnicodeDecodeError的问题
Dec 06 Python
tensorflow2.0的函数签名与图结构(推荐)
Apr 28 Python
在django admin中配置搜索域是一个外键时的处理方法
May 20 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
Jun 12 Python
Python pyecharts绘制条形图详解
Apr 02 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写的采集程序
2007/03/16 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
jQuery 渐变下拉菜单
2009/12/15 Javascript
js比较和逻辑运算符的介绍
2013/03/10 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
js闭包学习心得总结
2018/04/17 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
创建Vue项目以及引入Iview的方法示例
2018/12/03 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
python通过socket查询whois的方法
2015/07/18 Python
Python中字符串的格式化方法小结
2016/05/03 Python
python处理按钮消息的实例详解
2017/07/11 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
2020/04/22 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
opencv实现图像几何变换
2021/03/24 Python
食堂采购员岗位职责
2014/03/17 职场文书
化学工程专业求职信
2014/08/10 职场文书
Nginx利用Logrotate实现日志分割
2022/05/20 Servers