分享一个简单的python读写文件脚本

时间:2022-11-09 21:55:54

先来看一段创建文件并写入文本的代码,然后作介绍。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/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__的值是这个模块名,就不会执行模块内的测试代码了。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/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读写文件脚本的全部内容,希望对大家有所帮助。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

原文链接:http://www.open-open.com/code/view/1429270548955