python对文件的处理。
python对文件的处理的两个内建函数:
open()、file(),这个两函数提供了初始化输入\输出(I\O)操作的通用接口。两函数的功能相同。
基本用法:
file_object=open(filename, access_mode='r', buffering=-1)
file_object 是定义一个打开文件的对象
access_mode 是打开文件的模式;通常,文件使用模式 'r','w','a' 来打开,分别代表,读取,写入,追加。
'r' 模式打开已经存在的文件
'w' 模式打开的文件若存在则首先清空,再加入内容。
'a' 这个模式是追加内容到文件中
注. 'b' 模式这个是打开二进制文件,对于unix-like/unix类型的系统'b'模式是可有可无的。
buffering 访问文件所采用的缓冲方式。其中0表示不缓冲,1表示只缓冲一行数据,任何其它大于1的值代表使用给定的值作为缓冲区大小。不给定此参数或者参数为负数都表示使用系统默认的缓冲机制。
常用的文件访问方式如下:
r 以读方式打开
rU或Ua 以读方式打开同时提供通用换行符支持
w 以写方式打开
a 以追加方式打开
r+ 以读写方式打开
w+ 以读写方式打开
a+ 以读写方式打开
文件的输入:
python中有三个方法来处理文件内容的输入:
read() 一次读取全部的文件内容。
readline() 每次读取文件的一行。
readlines() 读取文件的所有行,返回一个字符串列表。
分别举例说明一下:
read():
|
1
2
3
4
5
6
7
8
|
>>> f=open('f.sh')>>> ff=f.read()
#以read()方法取得文件全部内容。>>> print
ff#!/bin/bashfor
i in {a,test,bak};do echo $idone>>> |
readline():
|
1
2
3
4
5
|
>>> f=open('f.sh')>>> file=f.readline()>>> print
file#!/bin/bash>>> |
每次打印都会显示出文件内容的第一行,如要显示文件的所有内容,则加一个while循环。如下所示:
|
1
2
3
4
5
6
7
8
9
10
11
|
>>> while
1:... file
= f.readline()... if
file:...
print file... else:...
break...for
i in {a,test,bak};do echo $idone>>> |
这样就显示出文件的所有内容了。
readlines():
|
1
2
3
4
|
>>> f=open('f.sh')>>> file=f.readlines()>>> print
file['#!/bin/bash \n',
'for i in {a,test,bak};do\n',
'\techo $i\n',
'done\n'] #文件内容以字符串列表的形式显示出来。 |
如果要正常的显示出文件来可以用eachLine这个参数,此参数代表文本文件的一行(包括末尾的换行符)
|
1
2
3
4
5
6
7
8
9
10
11
|
>>> for
eachLine in
file:... if
eachLine:...
print eachLine... else:...
print "failed"...#!/bin/bashfor
i in {a,test,bak};do echo $idone>>> |
也可以这样来读取文件内容:
|
1
2
3
4
5
6
7
8
9
10
11
12
|
>>> f=open('f.sh')>>> file
= f.readlines()>>> print
file['#!/bin/bash \n',
'for i in {a,test,bak};do\n',
'\techo $i\n',
'done\n']>>> for
i in
range(len(file)):... print
file[i]...#!/bin/bashfor
i in {a,test,bak};do echo $idone>>> |
下面来说一下文本文件的输出 write.先看一下例子:
|
1
2
3
4
5
6
7
8
9
10
|
>>> f=open('a',
'w')>>> s =
'This is a new line.'>>> f.write(s)>>> f.close()来读取一下这个刚创建的文件>>> f=open('a')>>> file=f.read()>>> print
fileThis is
a new line.>>> |
再来说一下python中在文本文件内容移动的操作,主要是用到seek()这个函数。以例子说明一下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
>>> f =
open('a',
'w+')
#'w+' 表示,文件以可读可写模式打开。>>> f.tell()
#用tell()方法来记录打开文件的位置。初始的位置00>>> f.write('test line 1\n')
#向文件中写入新的一行。>>> f.tell()12
#显示出移动的位置。>>> f.write('test line 2\n')
#再向文件中加入新的一行。>>> f.tell()24
#显示出移动的位置。>>> f.seek(-12,1)
#向后移动12个字节的位置。应该移动到文件内容的第二行的开头>>> f.tell()12>>> f.readline()
#用readline()方法读取当前位置时的文件内容。'test line 2\n'
#显示的是文件的第二行,可见readline()方法读取的是当前位置以后的内容。>>> f.seek(0,0)
#回到文件的开始位置>>> f.readline()
'test line 1\n'
# 显示文件的第一行。>>> f.tell()12
#此时位置在第二行的开始处。>>> f.readline()'test line 2\n'>>> f.tell()24
#此时又到了文件第三行的开始处了。>>> f.close() |
本文详细介绍了Python中文件的打开方式及读写操作,包括不同模式下的文件读取方法read(), readline(), readlines()的应用示例,并展示了如何通过seek()方法进行文件指针位置的移动。
4万+

被折叠的 条评论
为什么被折叠?



