九、Python高级功能之文件读写

2023-01-31 05:01:43 功能 读写 高级

python高级功能之文件读写


一、Python进行文件读写的函数时open或file

    file('filename','mode')

open('filename','mode')

mode模式

r    只读

r+   读写

w    写入,先删除原文件,再重新写入,如果文件没有则创建

w+   读写,先删除源文件,再重新写入,如果文件没有泽创建(可以写入输出)

a    写入,在文件末尾追加新的内容,文件不存在则创建

a+   读写,在文件末尾追加新的内容,文件不存在则创建

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

U    支持所有的换行符号 \r,\n,\r\n


>>> fo = open('/root/test.txt')   #打开文件

>>> fo

<open file '/root/test.txt', mode 'r' at 0x7ff52bd64d20>

>>> fo.read()    #读取文件

'asdfaf\nasdfad\nafd\n'

>>> fo.close()   #关闭文件


>>> fo = open('/root/new.txt','w')   #以w的模式打开文件,没有则创建

>>> fo.write('hello \ni am new')   #写入内容

>>> fo.close()    #关闭文件



二、文件对象方法

FileObject.close()   #关闭

String = FileObject.readline([size])   #每次读取一行,size是指每行每次读取size个字符,直到行的末尾(超出范围输出空值)

>>> f1 = open('text.txt')

>>> f1.readline()

'www.csvt.net\n'

>>> f1.readline()

'i am sdfasd\n'

>>> f1.readline()

'hello world\n'

>>> f1.readline()

''

List = FileObject.readlines([size])  #每行为单位,返回一个列表,size是指每行每次读取行的size个字符,直到行的末尾

>>> f1 = open('text.txt')

>>> f1.readlines()

['www.csvt.net\n', 'i am sdfasd\n', 'hello world\n']


String = FileObject.read([size])   #读出文件所有内容,并复制给一个字符串

>>> f1.read()

'www.csvt.net\ni am sdfasd\nhello world\n'

FileObject.next()     #返回当前行,并将文件指针到下一行(超出范围,停止输出)

>>> f1 = open('text.txt')

>>> f1.next()

'www.csvt.net\n'

>>> f1.next()

'i am sdfasd\n'

>>> f1.next()

'hello world\n'

>>> f1.next()

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

StopIteration

FileObject.write(string)

FileObject.writelines(List)

FileObject.seek(偏移量,选项) 

 选项为0时,表示将文件指针指向从文件头部到“偏移量”字节处

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

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

FileObject.flush() #提交更新

 


例子:

文件查找:

统计文件中hello个数

#!/usr/bin/python

import re

fp = file("text.txt",'r')

count = 0

for s in fp.readlines():

    li = re.findall("hello",s)

    if len(li)>0:

        count = count + len(li)

print "Search %d hello" % count

fp.close()


文件内容替换:

将文件中hello替换为abc,并保存结果到text2.txt文件中

#!/usr/bin/python

fp1 = file("text.txt",'r')

fp2 = file("text2.txt",'w')

for s in fp1.readlines():

    fp2.write(s.replace("hello","abc"))

fp1.close()

fp2.close()


将文件中hello替换为abc

#!/usr/bin/python

fp1 = open("text.txt",'r+')

s = fp1.read()

fp1.seek(0,0)

fp1.write(s.replace("hello","abc"))

fp1.close()

相关文章