文件和目录的基本操作

来源:互联网 发布:腾讯内部刷枪软件 编辑:程序博客网 时间:2024/06/05 05:55

打开文件用函数file或者open,创建一个文件对象,然后用文件对象里面的方法(,f.read(),f.close())对文件进行操作。


格式是:f=open(文件名,mode)

mode的几种形式:

r:只读

r+:读写。暂时会写入缓冲区,只有fobject.close()后,才能奏效

w:写入,会删除原文件,文件如果没有创建,则会创建

w+:读写,会删除原文件文件如果没有创建,则会创建(可以写入输出)

a:写入,在原文件基础上追加,文件不存在,则创建

a+:读写,在原文件基础上追加,文件不存在,则创建

b:打开二进制文件,可以和r,w,a,+结合使用

U:支持所有换行符。\r,\t,\n

>>> f=file('./txt','r')
>>> f.read()
'hello python\nok\nabc\n\n'

>>> f.close()


文件对象的几种操作方法

遍历迭代用open打开,依次打开文件中的每一行

>>> for i in open('./txt'):(或者 for  i in file('./txt'):)
...     print i
...
hello python
ok
abc
hei hei1234545678


fobeject.readline() #打印文件中的第一行有指针作用。


fobject.next()#依次打印第一行数据,也是具有指针作用。和上面readline方法不同的是。它在结束的时候会停止迭代

,而readline会继续打印出空字符串


fobeject.readlines()#将文件中的每一行数据当做一个列表返回,一行充当列表的一个元素

>>> f=open('./txt')
>>> f.readlines()
['hello python\n', 'ok\n', 'abc\n', 'hei hei1234545678\n']



fobject.writelines(可以是列表)#写入速度比write(内容)要快,效率高,少量写入可以用write()

>>> f=open('./txt','a')
>>> s=["asd\n","cdr123\n"] #注意要带换行符\n不然就会写入同一行中

>>> f.writelines(s)

>>> f.close()

运行结果:

[root@daixiangzi code]# cat txt
hello python
ok
abc
hei hei1234545678
asd
cdr123



操作文件指针(定位)方法fobject.seek(偏移量,标记)

标记默认为0(表示文件开始的位置)

标记1(表示当前指针位置)

标记2(表示指向文件尾)



例子,字符替换和字符统计

#!/bin/python
#coding=utf8
#文件中统计某个字符的个数,替换字符
import string
def replace_word(x,y):#x为替换字符,y为被替换字符,z为替换次数,默认为全部替换
        f=open('./test','r+')
        g=f.read()
        f.close()
        f=open('./test','w')
        f.write(string.replace(g,y,x))
        f.close()

def count_word(x,y): #x为文件路径,y为查找字符
        count=0
        f=open(x,'r')
        for i in f.readlines():
                if i==y:
                        count=count+1
        f.close()
        return count
#a="./test"
#b="4\n"
#c=count_word(a,b)
#print c
a="a\n"
b="x\n"
replace_word(b,a)





0 0
原创粉丝点击