最好的介绍 python文件io的文章
2016-09-19 18:44
375 查看
来源:http://www.tuicool.com/articles/7RVFBj
python中,可以通过open()函数打开一个文件创建一个file类的对象来操作文件,也可以在打开文件创建file对象时指定文件打开的模式(如果没有指定打开模式,默认为r),来决定能对文件进行的操作。这里说的文件读写操作就是利用file类中提供的read、readline、readlines和write等方法来操作文件。
1、read和write
read函数除非指定size,否则会默认读取文件的全部内容并返回。write函数会将一个str写入到文件当前写入内容的末尾(意思就是,f.write(str1),
f.write(str2),str2会出现在str1的后面)。
2、打开模式
和其它编程语言类似,python中的文件打开模式也有三种:读模式('r')、写模式('w')和追加模式(‘a’)。读模式下打开的文件只能用来进行读操作;写模式下打开的文件能进行写操作,但是文件中原来的内容会被清空掉;追加模式下打开的文件能进行写操作,而且所有被写入的内容都会追加在原来文件的末尾。
2.1 写模式和追加模式
写模式和追加模式下打开的文件如果不存在,该文件会默认被创建,其内容为空。
(1) w mode: write to a file
(2) w mode: write to the same file again
可以看出,之前文件中的内容都被清空了。
(3) a mode: write to the same file
可以发现append在了它的后面
2.2 读模式
对于读模式下打开的文件,可以进行读取操作。如果读取模式下打开一个不存在的文件,会报错(IOError: [Errno 2] No such file or directory)。
(1) read
像上文中说的read默认读取整个文件的内容并返回。
(2) readline
读取文件的一行,保留换行符,到文件末尾返回空串。
)
f.close()
$ cat temp.txt
Be serious!
Not funny at all!
hello, world.
hi, python!
//这里有一个空行
$ python file_readline.py
Be serious!
Not funny at all!
hello, world.
hi, python!
//这里最后也会打出空行
(3) readlines
重复调用readline读取文件中的所有行到一个list。
好了,到这里就可以用python进行文件的基本操作了,后面有复杂的需求会进一步补充。^_^
python中,可以通过open()函数打开一个文件创建一个file类的对象来操作文件,也可以在打开文件创建file对象时指定文件打开的模式(如果没有指定打开模式,默认为r),来决定能对文件进行的操作。这里说的文件读写操作就是利用file类中提供的read、readline、readlines和write等方法来操作文件。
1、read和write
read([size]) -> read at most size bytes, returned as a string. If the size argument is negative or omitted, read until EOF is reached. Notice that when in non-blocking mode, less data than what was requested may be returned, even if no size parameter was given. write(str) -> None. Write string str to file with no new lines. Note that due to buffering, flush() or close() may be needed before the file on disk reflects the data written.
read函数除非指定size,否则会默认读取文件的全部内容并返回。write函数会将一个str写入到文件当前写入内容的末尾(意思就是,f.write(str1),
f.write(str2),str2会出现在str1的后面)。
2、打开模式
和其它编程语言类似,python中的文件打开模式也有三种:读模式('r')、写模式('w')和追加模式(‘a’)。读模式下打开的文件只能用来进行读操作;写模式下打开的文件能进行写操作,但是文件中原来的内容会被清空掉;追加模式下打开的文件能进行写操作,而且所有被写入的内容都会追加在原来文件的末尾。
2.1 写模式和追加模式
写模式和追加模式下打开的文件如果不存在,该文件会默认被创建,其内容为空。
(1) w mode: write to a file
$ cat file_w.py filename = "temp.txt" f = open(filename,"w") f.write("hello, world.\n") f.write("hi, python!\n") f.close() $ python file_w.py $ cat temp.txt hello, world. hi, python!
(2) w mode: write to the same file again
$ cat file_w.py filename = "temp.txt" f = open(filename,"w") f.write("Be serious!\n") f.write("Not funny at all!\n") f.close() $ python file_w.py $ cat temp.txt Be serious! Not funny at all!
可以看出,之前文件中的内容都被清空了。
(3) a mode: write to the same file
$ cat file_a.py filename = "temp.txt" f = open(filename,"a") f.write("hello, world.\n") f.write("hi, python!\n") f.close() $ python file_a.py $ cat temp.txt Be serious! Not funny at all! hello, world. hi, python!
可以发现append在了它的后面
2.2 读模式
对于读模式下打开的文件,可以进行读取操作。如果读取模式下打开一个不存在的文件,会报错(IOError: [Errno 2] No such file or directory)。
(1) read
像上文中说的read默认读取整个文件的内容并返回。
$ cat file_r.py filename = "temp.txt" f = open(filename,"r") print f.read() f.close() $ python file_r.py Be serious! Not funny at all! hello, world. hi, python!
(2) readline
readline([size]) -> next line from the file, as a string. Retain newline. A non-negative size argument limits the maximum number of bytes to return (an incomplete line may be returned then).Return an empty string at EOF.
读取文件的一行,保留换行符,到文件末尾返回空串。
$ cat file_readline.py filename = "temp.txt" f = open(filename,"r") line = f.readline() while line://最后的空行也会被打印出来 #readline will retain an enter, so add ',' at the end to remove the enter of print print line, line = f.readline()(如果f.readline()返回一个空字符串,那就表示已经达到文件的末尾,而如果返回一个只包含一个换行符的字符串'\n',则表示遇到一个空行。
)
f.close()
$ cat temp.txt
Be serious!
Not funny at all!
hello, world.
hi, python!
//这里有一个空行
$ python file_readline.py
Be serious!
Not funny at all!
hello, world.
hi, python!
//这里最后也会打出空行
(3) readlines
readlines([size]) -> list of strings, each a line from the file. Call readline() repeatedly and return a list of the lines so read. The optional size argument, if given, is an approximate bound on the total number of bytes in the lines returned.
重复调用readline读取文件中的所有行到一个list。
$ cat file_readlines.py filename = "temp.txt" f = open(filename,"r") lines = f.readlines() for line in lines: print line, f.close() $ cat temp.txt Be serious! Not funny at all! hello, world. hi, python! //这里有一个空行 $ python file_readlines.py Be serious! Not funny at all! hello, world. hi, python! //这里最后也会打出空行
好了,到这里就可以用python进行文件的基本操作了,后面有复杂的需求会进一步补充。^_^
相关文章推荐
- python中生成可执行文件的最好的办法是什么
- 一篇不错的介绍Python中Unicode码的文章
- ruby文件读写的好文章 ruby way之IO之一
- Python模块学习 ---- StringIO, cStringIO 内存文件
- 这是我看到过最好的介绍IQ正交调制的文章
- 文章介绍:Sexy Lexing with Python
- Python计算器小程序及文件IO
- 发现一篇python 读写文件的文章 不错
- 转一篇比较详细介绍FatFs文件系统移植的文章
- 介绍FatFs文件系统移植的文章
- Python编写shell脚本中常用的文件介绍
- 比较详细介绍FatFs文件系统移植的文章
- 至今为止看过的最好的介绍Modal-View-ViewModal的文章
- 转一篇比较详细介绍FatFs文件系统移植的文章
- 转一篇比较详细介绍FatFs文件系统移植的文章
- 一篇不错的介绍Python中Unicode码的文章
- Python模块学习 ---- StringIO, cStringIO 内存文件 收藏
- Python入门程序:文件操作和IO异常
- CxImage与OpenGL结合,用于读入多种格式的纹理以及用来把屏幕保存为各种格式的图像文件。 关于CxImage的文章,网上有许多,这里只介绍如何把CxImage与OpenGL结合起来,用于读
- python 下关于文件操作的文章