Python:数据文件的打开模式和操作方法
来源:互联网 发布:网络电视32寸多少钱 编辑:程序博客网 时间:2024/05/16 06:11
对数据文件的操作是Python的内置模块,只要使用open函数,根据文件的打开模式,获取到文件的句柄,就可以对文件进行读、写、追加操作。语法形式如下:
方式一:fp = open(“文件名”,“文件打开模式”)
方式二:with open("文件名") as fp:
如果打开了文件之后就不再处理该文件了,那么使用with语句可以使程序编写得更为简洁,离开with之后,系统自动会关闭文件相关的内容,就不需要主动使用fp.close()了。
- 文件名:可以是用绝对路径表示的文件名称,也可以是当前文件夹下的文件名称。
- 文件打开模式:
r 以读取模式打开
w 以写入模式打开,删除原有的内容
a 以追加模式打开 ,不会删除原有的内容,而是把后来的内容附加到原有的内容之后
r+ 以读写模式打开
w+ 以可写加上可读操作
a+ 以追加方式加上读操作
rb 以二进制读取模式打开
wb 以二进制写入模式打开
ab 以二进制追加模式打开
rb+ 以二进制读写模式打开
wb+ 以二进制读写模式打开
ab+ 以二进制读写模式打开 - fp: 打开文件的句柄,对文件的操作就是对文件句柄的操作,有以下操作方法:
fp.read([size]) size为读取的长度,以byte为单位
fp.readline([size]) 读一行,如果定义了size,有可能返回的只是一行的一部分
fp.readlines([size]) 把文件每一行作为一个list的一个成员,并返回这个list。
其实它的内部是通过循环调用readline()来实现的。
如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。
fp.write(str) 把str写到文件中,write()并不会在str后加上一个换行符
fp.writelines(seq) 把seq的内容全部写到文件中(多行一次性写入)。
这个函数也只是忠实地写入,不会在每行后面加上任何东西。
fp.close() 关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,
最好还是养成自己关闭的习惯。 如果一个文件在关闭后还对其进行操作会产生ValueError
fp.flush() 把缓冲区的内容写入硬盘
fp.fileno() 返回一个长整型的”文件标签“
fp.isatty() 文件是否是一个终端设备文件(unix系统中的)
fp.tell() 返回文件操作标记的当前位置,以文件的开头为原点
fp.next() 返回下一行,并将文件操作标记位移到下一行。
把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。
fp.seek(offset[,whence]) 将文件打操作标记移到offset的位置。
这个offset一般是相对于文件的开头来计算的,一般为正数。
但如果提供了whence参数就不一定了。
whence可以为0表示从头开始计算。
1表示以当前位置为原点计算。
2表示以文件末尾为原点进行计算。
需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
fp.truncate([size]) 把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。
如果size比文件的大小还要大,依据系统的不同可能是不改变文件,
也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。
在大部分的应用中,都是以文本文件的方式来存取文件的内容,也就是以字符串的类型操作文件的内容。看示例。
1、给出两个文本文件:
春晓.txt:《春晓》春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。
- drawOfSpring.txt:
Dawn of Spring
I wake up at the dawn of Spring,
And hear the birds ev'rywhere sing.
As sounded the wind and rain o'ernight,
I wonder how many blooms alight.
2、执行如下程序:
fp = open("春晓.txt","r+")spring = fp.readlines()#fp.close()i=1print("-----------诗词翻译:方式一-----------")for statement in spring: print("line {}: {}".format(i,statement),end="") i +=1print()files = []with open('dawnOfSpring.txt') as fpoint: files = fpoint.readlines()i=1print("-----------诗词翻译:方式二-----------")for statement in files: fp.write(statement) print("line {}: {}".format(i,statement),end="") i +=1fp.close()
3、执行后,显示的结果如下:
-----------诗词翻译:方式一-----------line 1: 《春晓》line 2: line 3: 春眠不觉晓,处处闻啼鸟。line 4: 夜来风雨声,花落知多少。 line 5: -----------诗词翻译:方式二-----------line 1: line 2: Dawn of Springline 3: I wake up at the dawn of Spring, line 4: And hear the birds ev'rywhere sing. line 5: As sounded the wind and rain o'ernight, line 6: I wonder how many blooms alight.Process finished with exit code 04、用文本编辑器打开“春晓.txt”文件,结果是这样子的:
《春晓》
春眠不觉晓,处处闻啼鸟。
夜来风雨声,花落知多少。
Dawn of Spring
I wake up at the dawn of Spring,
And hear the birds ev'rywhere sing.
As sounded the wind and rain o'ernight,
I wonder how many blooms alight.
0 0
- Python:数据文件的打开模式和操作方法
- python 打开和存储数据文件
- Oracle 移动数据文件的操作方法
- Oracle 移动数据文件的操作方法
- Oracle 移动数据文件的操作方法
- Oracle 移动数据文件的操作方法
- Oracle 移动数据文件的操作方法
- Oracle 移动数据文件的操作方法
- Oracle 移动数据文件的操作方法
- Oracle 移动数据文件的操作方法
- 打开钱箱的操作方法
- Oracle中修改数据文件路径的操作方法
- Python打开文件的模式
- vs2008打开数据文件的错误
- python 数据文件的读取
- Python列表(list)和字典(dict)的操作方法
- 关于Python的文件操作方法
- Python中Mysql的操作方法
- 风一直吹,我一直跑——小记2016年终总结
- 二叉树非递归三种遍历
- 【贪心算法】背包问题
- 【Leetcode】205. Isomorphic Strings
- 算法
- Python:数据文件的打开模式和操作方法
- 【Java语言程序设计(基础篇)第10版 练习题答案】Practice_9_4
- 11.3.5
- c指针应用:键值对"key=value"字符串,在开发中经常使用
- 算法训练 5-1最小公倍数
- win10,ubuntu双系统和win10,红帽双系统的安装的异同
- OI心得::学会经常使用类,重载运算符和库。
- nginx配置虚拟主机
- Matlab编程与数据类型 -- 开关语句switch/end