一、打开文件
1、open()函数
打开模式 执行操作
‘r’ 以只读方式打开文件(默认)
‘w’ 以写入的方式打开文件,会覆盖已存在的文件
‘x’ 如果文件已经存在,使用此模式打开将引发异常
‘a’ 以写入模式打开,如果文件存在,则在末尾追加写入
‘b’ 以二进制模式打开文件
‘t’ 以文本模式打开(默认)
‘+’ 以可读模式(可添加到其他模式中使用)
‘U’ 通用换行符支持
********************************************************************
文件对象方法 执行操作
f.close() 关闭文件
f.read(size = -1) 从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有自负,然后作为字符串返回
f.readline() 以写入模式打开,如果文件存在,则在末尾追加写入
f.write(str) 将字符串str写入文件
f.writelines(seq) 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象
f.seek(offset,from) 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节
f.tell() 返回当前在文件中的位置
***********************************************************************
二、举例说明:
# read(5):从文件读取5个字符
>>> f = open('//Users//wufq//Desktop//record.txt')
>>> f.read(5)
'12345'
# tell():返回当前在在文件中的位置
# seek(5,0):从0开始移动5个位置
>>> f = open('//Users//wufq//Desktop//record.txt')
# readline() 结合着seek()函数,从移动的位置,直接读取第一行的数据
>>> f = open('//Users//wufq//Desktop//record.txt')
>>> f.readline()
'56789\n'
>>>
#迭代读取文本的每一行
>>> f = open('//Users//wufq//Desktop//record.txt')
>>>
# write(str):写入字符串到文件
>>> f = open('//Users//wufq//Desktop//record.txt','w')
>>> f.write('99999999')
8
>>> f.close() #写入字符串以后,必须的关闭,要不写入的内容会写到缓存内
三、练习题
1、如何将一个文件对象(f)中的数据存放进列表中
>>> f = open('//Users//wufq//Desktop//record.txt')
>>> list(f) #使用list(f)
['99999999']
2、如何迭代打印文件对象(f)中的每一行数据
for each_line in f:
print(each_line)
3、文件对象的内置方法f.read(size=-1)作用是读取文件对象内容,size参数是可选的,那如果设置了size = 10 ,例如f.read(10),将返回什么内容?
返回文件内的十个字符
4、如何获得文件对象(f)当前文件指针的位置
f.tell()
5、尝试将文件(OpenMe.mp3)打印到屏幕上
f.open('OpenMe.mp3')
for each in f:
print(each,end='')
f.close()
6、编写代码,将上一题中的文件(OpenMe.mp3)保存为新文件(OpenMe.txt)
f1 = open('OpenMe.mp3')
f2 = open('OpenMe.txt')
f2.write(f1.read()) #读取f1文件并写到f2里面
f2.close()
f1.close()