Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3041992
  • 博文数量: 167
  • 博客积分: 613
  • 博客等级: 中士
  • 技术积分: 5473
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-13 21:35
个人简介

人, 既无虎狼之爪牙,亦无狮象之力量,却能擒狼缚虎,驯狮猎象,无他,唯智慧耳。

文章分类
文章存档

2015年(19)

2014年(70)

2013年(54)

2012年(14)

2011年(10)

分类: Python/Ruby

2014-06-13 15:43:21

   任何语言都要定义与文件的交互接口,C/C++是这样,Python也是如此。在C中的文件操作read/write可以由更为底层的getchar()/putchar()构造而来,C++中则提供了封装的文件流对象操作方法,Python中也使用文件对象的概念,文件的操作都是以文件对象的方法来体现的。下面我们来看一段代码,主要是文件基本读写命令的使用:

点击(此处)折叠或打开

  1. #A Basic Program for File Write/Read...

  2. f = open("7son.txt", 'r+')

  3. #read()
  4. print "f.read(4) is : ", f.read(4)

  5. f.seek(0, 0)

  6. print f.read()

  7. #readline()
  8. print "*******************************************************************"
  9. len = f.tell()
  10. f.seek(0, 0)
  11. while True:
  12.     if f.tell() < len:
  13.         print "f.readline(): ", f.readline()
  14.     else:
  15.         break
  16. f.seek(0, 0)
  17. for i in f.readlines():
  18.     print "readlines: ", i

  19. print "*******************************************************************"
  20. # write()/writelines()
  21. f.close()
  22. f = open("7son.txt", 'a')
  23. f.write("其实这是一个用于Python的测试程序")

  24. f.close()
  25. f = open("7son.txt", "r")
  26. f_1 = open("7.txt", "w+")
  27. f_1.writelines(f.readlines())
  28. f.close()
  29. f_1.seek(0, 0)
  30. for line in f_1.readlines():
  31.     print "7.txt readlines: ", line

  32. f_1.close()

  33. raw_input("Enter for Exit...")
-1. 首先,第三行使用open()函数打开了一个文件对象,对于open("7son.txt", 'r+')而言,第一个参数是必须的,用来提供读写文件对象的名称和位置,可以使用绝对路径;第二个参数是文件打开模式的选择,这里的是"r+",表示可读可写,Python提供了"r、w、a、+、b"五种基本模式,r表示可读,w表示可写,a表示文件末尾追加,+表示可读写,b表示读写二进制文件,可以如本例中那样组合使用;open()函数最终会返回一个可读/写的文件对象,具体由参数指定;
-2. 第六行到第十行主要是说明read()函数如何使用,read函数用于从文件中读取字符,参数指定读取几个字符,如read(4),就会读取当前文件指针开始的四个字节,若不带参数,则说明读取全部字节read();
-3. 第十四行到第二十三行用于说明readline()和readlines()如何使用。readline()用于从文件中一次读取一行,遇到换行符即结束;readlines()则用于从文件中读取所有的行,并且返回按行存储的文件序列,由于序列是可迭代的,因此readlines()返回的对象也是可迭代的,即可以用于for语句中;当想列出文件中所有的行时,直接像代码这样使用即可,只是对于readline()函数而言,必须设定结束条件,这里适应tell()方法获取当前的文件指针,通过seek(0, -1)将文件指针置于文件末尾,结合使用获得文件字节大小作为循环结束条件;
-4. 第二十六行到最后主要用来说明write()和writelines()函数的用法。write()函数接受字符串参数即可写入,注意文件指针的位置,若在末尾为追加,若在文件数据中则会进行覆盖;writelines()函数接受字符串序列,然后按行写入到文件中,换行必须由自己添加,writelines()不会为你自动换行;
   程序执行如下,这里自己使用的例子文件保存的“七子之歌”:


   开始的“你可”是因为read(4)读取了前4个字节,正好是两个汉字字符的缘故;代码后半段从模板文件中读取内容,再写入到一个新文件"7.txt"中,然后打印出结果。











阅读(3634) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

windhawkgyang2014-06-16 09:04:27

dizhuang:学习的很好

谢谢鼓励 我会继续努力的!

回复 | 举报

dizhuang2014-06-14 13:24:46

学习的很好