Python 文件读写
Python 文件读写
读写文件使用内建函数open()
、write()
。
read()方法
file = open('a.txt','r') #打开文件'a.txt',返回文件对象file
#print(type(file))
data = file.read() #调用read方法读整个文件内容,返回字符串
#print(type(data))
file.close() #关闭打开的文件
print(data) #显示文件内容
上述代码首先用以“只读”的方式打开文件“a.txt”,此时file是一个文件对象。
read([size=-1])
方法读取整个文件内容,字符串data包含了文件的整个内容。read()
方法有一个可选参数size,默认是-1。当指定的size>0
,read()
方法读取size个字节;如果size<0
或没有指定,则读取文件直至结尾(EOF)。
close()
方法关闭open()
打开的文件。使用with
方法,默认自动关闭文件。
with open('a.txt') as file:
data = file.read()
print(data)
readline()方法
readline([size=-1])
方法从当前指针位置读取直至行尾。size
含义同前。如果size>行字节数
,会产生一个回车('\n
')
with open('a.txt') as file:
data = file.readline() #读取第一行
print(data)
with open('a.txt') as file:
data = file.readline(5) #读取第一行的前5个字符
print(data)
with open('a.txt') as file:
file.seek(5)
data = file.readline() #从第一行的第6个字符读取到行尾
print(data)
通过line()
方法遍历文件内容如下。
with open('a.txt') as file:
line = file.readline() #读取第一行,返回字符串line
while line: #如果line非空
print(line)
line = file.readline()
打印每一行内容:
with open('a.txt') as file:
for line in file:
print(line,end='')
readlines()方法
readlines([size=-1])
方法读取整个文件内容,存入一个列表中,每一行的内容后加入一个换行符'\n
'。
如果size<第1行字节数
读取第一行,第1行字节数<size<第2行字节数
读取第1、2行。依此类推
with open('a.txt') as file:
data = file.readlines()
print(data)
#print(type(data)) #<class 'list'>
文件对象的方法
方法 | 解释 |
---|---|
file=open('a.txt',[options]) | 打开文件 |
file.close('a.txt',[options]) | 关闭打开的文件 |
file.read([size=-1]) | 从文件读取 size 个字节。当未给定 size 或给定负值的时候, 读取剩余的所有字节, 然后作为字符串返回。如果打开模式有'b',按字节读取 |
file.readline([size=-1]) | 从文件中读取并返回一行(包括行结束符), 或返回最大 size |
file.readlines([size=-1]) | 把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。 |
file.fileno() | 返回一个长整型的“文件标签” |
file.flush() | 把缓冲区的内容写入硬盘 |
file.isatty() | 文件是否是一个终端设备文件(unix系统中的) |
file.next() | 返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的 |
file.tell() | 返回文件操作标记的当前位置,以文件的开头为原点 |
file.seek(off, whence=0) | 将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。 |
file.truncate(size=file.tell()) | 截取文件到最大 size 字节, 默认为当前文件位置 |
file.write(bytes('test',encoding='utf-8')) | 向文件写入字符串(会覆盖原有数据) |
file.writelines(seq) | 向文件写入字符串序列 seq ; seq 应该是一个返回字符串的可迭代对象 |
file.readlines(sizhint=0) | 读取文件的所有行并作为一个列表返回(包含所有的行结束符) |
参考资料
[1] 菜鸟学院
[2] 51jb
[3] Mr. Pan
[4] 调整Markdown表格宽度
本文来自博客园,作者:hzworld,转载请注明原文链接:https://www.cnblogs.com/ourweiguan/p/10478306.html