python文件操作
来源:互联网 发布:开发手机客户端软件 编辑:程序博客网 时间:2024/06/07 16:13
python文件操作相关知识总结
- 读文件操作(open)
语法:open(filename,mode)
filename表示文件名,mode表示打开的模式(见图片)
f=open("text.txt","r")
使用open打开文件后就可以开始读文件了,如果只用r开头的mode读文件,文件不存在,则会抛出IOError的错误,读取成功后用函数读取文文件
f.read()#一次读取所有内容f.read(size)#每次读取最多size个字节的内容f.readline()#readline() 方法用于从文件读取整行,包括 "\n" 字符for line in f.readlines():#一次性对所有内容并按行返回list print(line.strip()) # 把末尾的'\n'删掉#f.next():for index in range(5): line = next(f) print ("第 %d 行 - %s" % (index, line))
文件读取完毕后一定要调用f.close()关闭文件,因为文件对象会占用操作系统的内存资源,,并且操作系统同一时间能打开的文件数量也是有限的,一种完整的写法:
try: f = open('a.txt', 'r') print(f.read())finally: if f: f.close()#文件对象一定会关闭
另外python引入了with语句来帮我们自动调用close()函数,就像这样:
with open('a.txt', 'r') as f: print(f.read())
注意如果要读取非UTF-8编码的文本文件需要给open()函数传入encoding参数如:
f = open('gbk.txt', 'r', encoding='gbk') f.read()
- 写文件
通过前面的图片内容,写文件的操作例子:
f = open("foo.txt", "w",encoding="UTF-8") #写的方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式f.write("我要学Python\n") #写入,文件夹存在覆盖,不存在创建f.close() #关闭文件夹
记住一定要调用close语句,因为操作系统会先把内容写到内存中,只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘,忘记调用,可能只写入了一半,如果用with语句,就会避免这个错误:
with open('test.txt', 'w') as f: f.write('Hello, world!')
读写模式:
f = open("a.txt", "w+",encoding="UTF-8") #写的方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式f.write("我要学Python\n") #写入,文件夹存在覆盖,不存在创建print("定位之前的光标位置:%s" % (f.tell()))f.flush() #刷新文件使内存的内容刷新至文件夹f.seek(0,0) #因为W+读取文件之后会定位在文件尾部,所以需要重新定位一下光标位置,要不无法读取,file.seek(off, whence=0):从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。print("定位之后的光标位置:%s" % (f.tell()))i = f.read()print(i)f.close() #关闭文件夹输出:定位之前的光标位置:17定位之后的光标位置:0我要学Python
writelines() 方法用于向文件中写入一序列的字符串:
seq = ["我要学Python 1\n", "我要学Python 2"]fo.writelines( seq )
文件的操作方法:
(完)
阅读全文
0 0
- Python 文件操作常用操作
- [python]python操作xml文件
- Python文件操作
- python文件目录操作
- Python文件操作
- Python文件操作
- python 文件操作
- python 文件操作
- Python 文件操作
- python 文件操作
- Python文件操作
- python 文件读写操作
- Python文件读写操作
- python文件目录操作
- Python的文件操作
- python常见文件操作
- python - 文件操作
- python文件操作
- Grasshopper And the String
- 【Linux内核驱动】最小内核模块模板
- 第九周项目1二叉树算法库
- List Map Collections
- resource: ****.hbm.xml not found解决方案
- python文件操作
- 求三位数的水仙花数
- 运算符
- linux-mysql Access denied for user 'root'@'localhost'
- HDU2149 Public Sale(巴什博奕)
- 项目代码报:The method xx方法( ) is undefined for the type XX类
- 2.正确使用Less
- 有趣的排序
- 谷歌AVA数据库的1705.08421论文(5)