Python文件的读写

来源:互联网 发布:Ubuntu 软件怎么打不开 编辑:程序博客网 时间:2024/05/01 06:53

Python文件的读写

Python:文件的读取、创建、追加、删除、清空

一、用Python创建一个新文件,内容是从09的整数,每个数字占一行:

>>>f=open('f.txt','w')    # r只读,w可写,a追加

>>>for i in range(0,10):f.write(str(i)+'\n')

>>> f.close()

二、文件内容追加,从0910个随机整数:

>>>import random

>>>f=open('f.txt','a')

>>>for i in range(0,10):f.write(str(random.randint(0,9)))

>>>f.write('\n')

>>>f.close()

三、文件内容追加,从09的随机整数, 10个数字一行,共10行:

>>> import random

>>> f=open('f.txt','a')

>>> for i in range(0,10):

.  .  .     for i in range(0,10):f.write(str(random.randint(0,9)))

.  .  .     f.write('\n')   

.  .  .

>>> f.close()

四、把标准输出定向到文件:

#python

>>> import sys

>>> sys.stdout = open("stdout.txt", "w")

>>>  . . .

五、文件的读写

一、文件打开:

f = file(name[, mode[, buffering]])

入口参数:  name 文件名

          mode   选项,字符串

           buffering   是否缓冲 (0=不缓冲,1=缓冲, >1int=缓冲区大小)

返回值 : 文件对象

mode 选项:

"r"   以读方式打开,只能读文件 , 如果文件不存在,会发生异常      

"w" 以写方式打开,只能写文件, 如果文件不存在,创建该文件                                           

如果文件已存在,先清空,再打开文件

"rb"   以二进制读方式打开,只能读文件 , 如果文件不存在,会发生异常      

"wb" 以二进制写方式打开,只能写文件, 如果文件不存在,创建该文件

如果文件已存在,先清空,再打开文件

"rt"   以文本读方式打开,只能读文件 , 如果文件不存在,会发生异常      

"wt" 以文本写方式打开,只能写文件, 如果文件不存在,创建该文件

如果文件已存在,先清空,再打开文件

"rb+"   以二进制读方式打开,可以读、写文件 , 如果文件不存在,会发生异常      

"wb+" 以二进制写方式打开,可以读、写文件, 如果文件不存在,创建该文件

如果文件已存在,先清空,再打开文件

二、关闭文件

f.close()

当文件读写完毕后,应关闭文件。

三、清空文件内容

f.truncate()

注意:仅当以 "r+"   "rb+"    "w"   "wb" "wb+"等以可写模式打开的文件才可以执行该功能。

四、文件的指针定位与查询

1)文件指针:

      文件被打开后,其对象保存在 f 中, 它会记住文件的当前位置,以便于执行读、写操作,这个位置称为文件的指针(一个从文件头部开始计算的字节数long类型)

 

2)文件打开时的位置:

      "r"   "r+"   "rb+" 读方式, "w"   "w+"   "wb+"写方式 打开的文件,

     一开始,文件指针均指向文件的头部。

(3) 获取文件指针的值:

      L = f.tell()

(4) 移动文件的指针

       f.seek(   偏移量,选项)

       选项 =0 时, 表示将文件指针指向从文件头部到 "偏移量"字节处。

       选项 =1 时, 表示将文件指针指向从文件的当前位置,向后移动 "偏移量"字节。

       选项 =2 时, 表示将文件指针指向从文件的尾部,,向前移动 "偏移量"字节。

五、从文件读取指内容   

1 文本文件(以"rt"方式打开的文件)的读取  

s = f.readline(     )

返回值:s 是字符串,从文件中读取的一行,含行结束符。

说明:(1)  如果 len( s ) =0 表示已到文件尾

      (2)   如果是文件的最后一行,有可能没有行结束符

2 二进制文件(以"rb""rb+""wb+"方式打开的文件)的读取  

          s = f.read(    n )

     说明: (1) 如果 len( s ) =0 表示已到文件尾

            (2)文件读取后,文件的指针向后移动 len(s)字节。

           3)如果磁道已坏,会发生异常。

六、向文件写入一个字符串   

    f.write(    s )

    参数:       s 要写入的字符串

    说明: (1)文件写入后,文件的指针向后移动len(s)字节。

                 2)如果磁道已坏,或磁盘已满会发生异常。

返回值: s 是字符串,从文件中读取的内容

七、删除文件

import os

os.remove(file)

 

 

python中文件的按行读取

标签: pythonfp

2010-06-16 21:05 23797人阅读 评论(6) 收藏 举报

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

  传统的读法,全部读出,按行处理:

#!~/python2.5.2/bin/Python

fp=open("./ps.txt", "r");

alllines=fp.readlines();

fp.close();

for eachline in alllines:

    print eachline,;

 

  推荐读取方法,使用文件迭代器 , 每次只读取和显示一行,读取大文件时应该这样:

#!~/python2.5.2/bin/python

fp=open("./ps.txt", "r");

for eachline in fp:

    print eachline,;

 

0 0
原创粉丝点击