文件
文件:两种格式,一种是文本模式,一种是二进制格式。
1.open()函数
>>> help(open)
Help on built-in function open in moduleio:
open(file, mode='r', buffering=-1,encoding=None, errors=None, newline=None, closefd=True, opener=None)
Open file and return a stream. Raise IOError upon failure.
第一个参数是文件名,如果没有带路径则在当前默认路径下查找
第二个参数是打开模式
例子:
>>> f =open("E:\\test.txt")
>>> f
<_io.TextIOWrapper name='E:\\test.txt'mode='r' encoding='cp936'>
此时默认为文本模式打开。编码为cp936的格式。
2.f.close()函数 关闭文件
虽然python有垃圾回收机制,但是还是要养成打开文件记得关闭的好习惯。
3.f.read(size=-1)
从文件读取size个字符,当未给定size或者给定负值的时候,读取剩余的所有字符,然后作为字符串返回。
read的时候是从文件指针的地方开始读取的。当刚刚打开文件的时候文件指针在文件最开始;当读取完整个文件时文件指针在文件最末尾。如果已经读取完整个文件后再调用read函数则不会读到任何字符。(所以读取后需要适当调整文件指针的位置)
>>> f =open("E:\\test.txt")
>>> f.read()
'DriverMonitor\nDDK wizard\n\nwindows 内核情景分析\n\nWindows内核原理实现'
>>> f.read()
''
>>> f.close()
>>>
>>> f =open("E:\\test.txt")
>>> f.read(5)
'Drive'
4.f.readline()
以写入模式打开,如果文件存在,则在末尾追加写入。
5.f.tell()
返回当前文件指针的位置。
6.seek(offset,from)
在文件中移动文件指针,从from的位置偏移offset个字节。from的位置:0代表文件起始位置,1代表当前位置,2代表文件末尾
>>> f =open("E:\\test.txt")
>>> f.read(5)
'Drive'
>>>
>>> f.tell()
5
>>> #read()的参数为字符size,而tell()函数返回的是字节数,所以如果是中文字符,read的参数和tell的返回值是不一样的。
>>> f.seek(45,0)
45
>>>#此时表示把文件指针移到从文件开始向后数45个字节的位置。
>>> f.readline()
'分析\n'
>>>#此时从文件指针位置开始读这一行的剩下的内容
>>> f.tell()
51
>>> f.seek(0,0)
0
>>>#表示把文件指针移到文件开始位置
7.f.write(str)
将字符串str写入文件
>>> #文件的写入
>>> #如果要写入文件,要确保打开的时候打开模式为 w 或 a
>>> f =open("E:\\test0.txt",'w')
>>> #此时创建了一个新的文件
>>>
>>> f.write('python基础学习')
10
>>> f.close()
8.f.writelines(seq)
向文件写入字符串序列seq,seq需要时一个返回字符串的可迭代对象。
注意:使用如果要写入文件,要确保打开的时候打开模式为 w 或 a
9.for循环读取文件内容:for each in f
>>> f =open("E:\\test.txt")
>>> line = list(f)
>>> for each in line:
print(each)
DriverMonitor
DDK wizard
windows 内核情景分析
Windows内核原理实现
>>>
>>> #当数据很长时要转化成非常大的列表,这样不是很好。
>>>
>>> f.seek(0,0)
0
>>> for each in f :
print(each)
DriverMonitor
DDK wizard
windows 内核情景分析
Windows内核原理实现