python 文件操作
来源:互联网 发布:tensorflow 关闭sess 编辑:程序博客网 时间:2024/06/15 23:29
文件对象不仅可以用来访问普通的磁盘文件,也可以访问任何其他类型抽象层面上的“文件”。一旦设置了合适的“钩子”,你就可以访问具有文件类型接口的其他对象,就好像访问普通文件一样(摘自《python核心编程》第二版)
打开文件
open( )和file( )
我们要对文件进行操作,首先要做的就是打开一个文件,python中提供了open( )和file()两个内建函数供我们使用
- open( )基本语法如下
flie_object = open(file_name,access_mode = ‘r’,buffering = -1)
其中file_name 是一个字符串,就是要打开文件的路径(可以是相对路劲也可以是绝对路径)
可选变量access_mode也是一个字符串,代表文件的打开模式,常用的有’r’读,’w’写,’a’追加
另外一个参数buffering 用于指示访问文件所采用的缓冲方式,0代表不缓冲,1代表缓冲一行,任何大于1的值代表给定缓冲区的大小,不提供该参数或者使用负数,代表使用系统默认缓冲机制 - file( )是一个工厂函数,具有和open( )相同的功能,可以任意替换
- 使用open打开文件,处理后要将文件关闭,否则在程序运行结束之前都不将文件句柄释放,将一直占据内存空间,如果担心忘记,可以使用with,具体用法如下
f = open("grade.txt",'r',buffering = -1)f.read()'this is a text!'f.close()with open("grade.txt",'r') as f: print f.read() this is a text!
- 文件的打开模式
文件的读
- read( )方法用来直接读取字节到字符串中,最多读取给定数目size个字节,如果没有给定或值为负,文件被读至末尾,在读取文件的时候实际上存在一个类似于指针的东西,随着读取的字节进行移动,文件读完了,指针也就移到了最末尾,通过tell()方法可以返回这个指针当前的位置。所以很多时候当你读完一个文件,又马上调用read方法时就会返回为空,因为你之前读的时候指针已经指到了末尾,这时候你又进行读,已经没有可以返回的内容给你了,通过seek方法可以将这个指针位置调到你所想读的地方。
f = open("grade.txt",'rU',buffering = -1)print f.read()1、r 打开只读文件,该文件必须存在。 2、r+ 打开可读写的文件,该文件必须存在。 3、w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失4、w+ 打开可读写文件,若文件存在则文件长度清为零,5、a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,6、a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,7、上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合print f.read()print f.tell()561f.seek(0)print f.tell()0print f.read()1、r 打开只读文件,该文件必须存在。 2、r+ 打开可读写的文件,该文件必须存在。 3、w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失4、w+ 打开可读写文件,若文件存在则文件长度清为零,5、a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,6、a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,7、上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合f.seek(0)print f.read(30)1、r 打开只读文件,该
- readline()方法读取文件的一行,(读取下一个行结束符前的所有字节)然后整行(包括行结束符)作为字符串返回,也有一个可选参数size,默认为-1代表行结束符
f = open("grade.txt",'rU',buffering = -1)print f.readline()1、r 打开只读文件,该文件必须存在。
- readlines()方法读取所有(剩余的)行,然后把它们作为一个字符串列表返回(每一行为一个元素)但一般在读较大文件时不推荐使用此方法,因为这个方法,需要把一个文件中所有内容以列表形式读入内存中,十分消耗内存空间。
文件的写
- write()方法,将字符串写入文件中,通过seek可以将定位到你想写的位置,但是当你写入字符时会将该文件原有的内容覆盖(版本2可以用seek定位,版本3好像不行)
f = open("grade.txt",'r+',buffering = -1)print f.read()jalsdjflajsdfljasldfjlaskdjflasjdfljajnladskjflakjsdklfkdjfalkjdajlsdjjf.seek(0)f.write("----------------------------------")f.flush()f.close()f = open("grade.txt",'r+',buffering = -1)print f.read()----------------------------------dfljajnladskjflakjsdklfkdjfalkjdajlsdjjlaksdjflakjfldalowiefjajjladsjflajdljfakjdks
阅读全文
0 0
- Python 文件操作常用操作
- [python]python操作xml文件
- Python文件操作
- python文件目录操作
- Python文件操作
- Python文件操作
- python 文件操作
- python 文件操作
- Python 文件操作
- python 文件操作
- Python文件操作
- python 文件读写操作
- Python文件读写操作
- python文件目录操作
- Python的文件操作
- python常见文件操作
- python - 文件操作
- python文件操作
- Mongodb更新数组$sort操作符
- 树莓派python入门(1):树莓派系统安装与初次连接
- C99与C89主要区别
- 第四章、bash特性详解
- 记牌器程序
- python 文件操作
- 求圆内部面积占比
- Linux下一个简单的进度条
- Matrix derivatives(矩阵求导)
- 关于Interface 和 abstrac 的理解
- dfs, bfs之邻接矩阵无向图
- smarty介绍
- UDP和TCP(传输层)
- Java多线程(2) 线程的状态和属性