分享一个简单的python读写文件脚本
作者:jopen 发布时间:2022-11-21 20:03:00
先来看一段创建文件并写入文本的代码,然后作介绍。
#!/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 >')
# 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语句。
来源:http://www.open-open.com/code/view/1429270548955


猜你喜欢
- 本文实例讲述了python网络编程:socketserver的基本使用方法。分享给大家供大家参考,具体如下:本文内容:socketserve
- 网上搜索出来的结果多是下面答案:MySQL中,如何查询两个日期之间的记录,日期所在字段的类型为datetime(0000-00-00 00:
- 一、方差分析1.单因素方差分析通过箱线图可以人肉看出10组的订单量看起来差不多,为了更科学比较10组的订单量有无显著差异,我们可以利用方差分
- 前言python的类分别有新式类和经典类,都支持多继承。在类的继承中,如果你想要重写父类的方法而不是覆盖的父类方法,这个时候我们可以使用su
- SELECT (case when a.colorder=1 then d.name else '
- 1.os.system函数wget 是一个下载软件的程序,如果已经下载好该软件,可以用py调用该软件。假如该软件目录在d:\tools\wg
- Flask-Login 为 Flask 提供用户会话管理。它处理登录、注销和长时间记住用户会话等常见任务。Flask-Login 不绑定到任
- Vue 中使用 jQuery 和 Bootstrap 不是特别符合 Vue 原生的写法,但是有时候又要用,所以放上我的引入设置,供大家参考。
- 避坑1:RTX30系列显卡不支持cuda11.0以下版本,具体上限版本可自行查阅:方法一,在cmd中输入nvidia-smi查看方法二:由此
- 1. 定义生成树# -*- coding: utf-8 -*-#生成树的函数from numpy import * import numpy
- 最近在研究Hacker News API时遇到一个HTTPS问题。因为所有的Hacker News API都是通过加密的HTTPS协议访问的
- 三子棋的python实现代码,供大家参考,具体内容如下一、基本流程三子棋游戏实现逻辑如下:1、创建初始化3*3棋盘;2、玩家执U子,先进行落
- 众所周知tensorflow造势虽大却很难用,因此推荐使用Keras,它缺省是基于tensorflow的,但通过修改keras.json也可
- 有时当一个条件成立的情况下,需要终止程序,可以使用sys.exit()退出程序。sys.exit()会引发一个异常1.如果这个异常没有被捕获
- 在开发过程中,常常需要将数据库表对应到golang的一个struct,特别是使用一些ORM工具,sqlx库等,我是个懒人,即使数据表的字段不
- Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。可以通过下图来简单了解条件语句的执行过
- 最近项目中使用了vue-router的addRoutes这个api,遇到了一个小坑,记录总结一下。场景复现:做前端开发的同学,大多都遇到过这
- 问题你想自己去实现一个新的上下文管理器,以便使用with语句。解决方案实现一个新的上下文管理器的最简单的方法就是使用 contexlib 模
- 本文介绍了计算多个订单的核销金额的全部过程,运行数据库环境:SQL SERVER 2005,下面跟大家分享一下。下图是一张订单明细表,现有金
- 1.ROW_NUMBER()基本用法:SELECT SalesOrderID, CustomerID,