python 文件操作
来源:互联网 发布:java中异步请求 编辑:程序博客网 时间:2024/06/05 15:22
Linux下万物皆文件,所以处处都要遇到对文件的处理操作,win 系统下也一样,更何况python 的跨平台如此强大了:
今天我们来了解python 对文件的操作
1:读文件
要以读文件的模式打开一个文件,使用python 内置函数open(),格式如下
f= open("test.open.txt",'r') ### open函数("文件名","打开文件使用的模式) 如果文件不存在,则报错提示
如果文件打开成功,就可以使用read()方法一次性读取文件内容,所有的内容读到内存,用一个str对象表示,
f.read() ### "hello world"
最后我们调用close()方法关闭文件,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量是有限的
f.close() ### 关闭文件
这样感觉是不是很麻烦,每次都要打开关闭,而且很可能就是会忘记关闭,为了解决这个问题,我们可以使用python 的with 语句来自动帮我们调用close()方法:
with open("test.open.txt",'r') as f: print(f.read())
是不是感觉更简洁了,而且也不用调用close()方法
如果文件特别大,比如几个G或几十G,我们依然用read()方法时,内存肯定”吃”不定,为了预防这种现象发生,我们可以使用read(size)方法,每次只读取size个字节的内容,另外,也可以使用readline()每次只读取一行内容,调用 readlines()一次读取所有内容并按行返回list,
下面我们分别来使用这些方法
1:read()方法,一次读入所有内容
with open("test.open",'r') as f: print(f.read())### 输出结果this is a test txtmy name is zhangmy age is .....
2:readline()方法,一次读入一行内容,逐行向下读取
with open("test.open",'r') as f: print(f.readline()) print(f.readline()) print(f.readline())### 输出结果this is a test txtmy name is zhang
这里我们发现读取行时,出现了空格,是因为python 不会删除行结束符,这个操作只能程序员自己解决:
我们可以strip()方法
with open("test.open","r") as f: print(f.readline().strip()) print(f.readline().strip()) print(f.readline().strip())### 输出结果my name is ....my job is ....my age is ....
3:readlines()方法,读入所有内容,返回列表形式
with open("test.open",'r') as f: print(f.readlines())### 输出结果['\n', 'this is a test txt\n', 'my name is zhang\n', 'my age is .....\n']
二:写文件
对文件进行写操作使用python 的write()方法
首先打开文件时需要使用”w” 写模式
with open("test.open",'w') as f: f.write("my name is ....\n") f.write("my job is ....\n") f.close()with open("test.open",'r') as f: print(f.read()) ### 输出结果my name is ....my job is ....
我们发现,原先我们里面的内容没有了,这是因为w是以写模式创建一个文件,而不是打开,也就是覆盖了原来的文件,内容也被清空。那么我可以使用追加的方法
三:追加
with open("test.open",'a') as f: f.write("my age is ....\n") f.close()with open("test.open","r") as f: print(f.read())### 输出结果my name is ....my job is ....my age is ....
a 模式代表追加,如果这个文件不存在,a模式会自动创建文件,并写入。
四:其他
模式,除了读,写,追加以外,python 还提供了很多模式:
五:文件的其他方法
1:| detach(...) :待大神解救
2:| fileno(...) :返回文件的描述符
3: | flush(...) : 把缓冲区的数据刷到硬盘,而不是被动的等待输出缓冲区被写入
4:| isatty(...) :布尔内建函数,当文件是一个类try设备时返回 True,否则返回False:
5: | readable(...)待大神解救
6:| seek(...) :可以在文件中移动文件指针到不同的位置
7: | seekable(...)待大神解救
8:| tell(...) : 显示当前的位置
9: | truncate(...) :将文件截取到当前文件指针位置或者到给写size,以字节为单位
10:| writable(...)待大神解救
- Python 文件操作常用操作
- [python]python操作xml文件
- Python文件操作
- python文件目录操作
- Python文件操作
- Python文件操作
- python 文件操作
- python 文件操作
- Python 文件操作
- python 文件操作
- Python文件操作
- python 文件读写操作
- Python文件读写操作
- python文件目录操作
- Python的文件操作
- python常见文件操作
- python - 文件操作
- python文件操作
- dagger2 + RxJava +Retrofit 学习笔记
- 【VBA】常用字符转换函数备忘
- Apache设置多端口,多IP映射多站点
- 坐在马桶上看算法:只有五行的Floyd最短路算法
- [Memcached]Memcached 的分布式算法
- python 文件操作
- 基于git的源代码管理模型——git flow
- Windows平台下sbt的安装设置
- Android app 调试 一键杀进程脚本
- android中线程的开启,访问网络
- iOS网络状态(一)
- 韩顺平 javascript教学视频_学习笔记7_js自定义函数
- 新浪微博第三方登录
- 数据结构专题——线段树