【python】文件操作

来源:互联网 发布:买网站域名 编辑:程序博客网 时间:2024/06/15 23:59

文件也是python的类型之一

  1. file = open ("jeapedu.text","w")

open 是python的内置函数, 参数1,是要打开的文件名字。 参数2,是打开的模式,有读、写、追加等。

返回的类型就是文件类型。

参数2,mode类型的解释

  1. "w" , 可以写,如果不存在就新建立; 如果存在并且有内容,会如何? 请看稍后的实验。

  2. "r", 打开读文件内容,不可以写数据到文件。 对文件有保护作用。
  3. "a" ,打开文件,可以写;追加内容在文件后面
  4. "w+" , 打开文件,可以读写。

读写函数

标记为 “代码1”

  1. file= open ("jeapedu.txt","w+r")
  2. file.write("hello,jeapedu")
  3. l = file.read()
  4. print l
  5. file.close()

以上程序能出结果吗?程序没有写错的地方。 为何呢?如何改?

seek函数

更改文件的当前位置?

  1. file.seek(0)

什么是文件的位置?

  1. file= open("jeapedu.text","w")
  2. file.write("a")
  3. file.write("b")
  4. file.close()

我们希望这时候jeapedu.text 里面的内容是什么? 是"ab" 吗?

为什么?

因为系统记录了 file的位置。

请再次解释:“代码1”的问题? 并给出答案。

  1. file.tell() #获取文件当前位置
  2. file.readline() #读取文件的一行

写一个 test.py文件,用python test.py 执行来读写文件。 test.py 头含有:

  1. #!/usr/bin/env python
  2. #coding=utf-8

获取文件大小:

  1. 1.
  2. >>> f = open('chardet-1.0.1.tgz','rb')
  3. >>> f.seek(0,2)
  4. >>> f.tell()
  5. 179218L
  6. 2.
  7. >>> import os
  8. >>> os.fstat(f.fileno()).st_size
  9. 179218L
  10. >>>
  1. 参考实例 用随机顺序 来存储数据。 要求存储的数据必须是有序的。

  1. #coding:utf-8
  2. import random
  3. s = [0,1,2,3,4,5,6,7,8,9]
  4. def write_random(offset,buf):
  5. print offset,buf
  6. f = open ("test.txt","r+")
  7. f.seek(offset)
  8. f.write(buf)
  9. f.close()
  10. open("test.txt","w")
  11. while len(s) > 0:
  12. r = random.choice(s)
  13. write_random(r,str(r))
  14. s.remove(r)
原创粉丝点击