python之文件内容操作
大家在学习和使用python的时候肯定会遇到要对文件进行操作,这篇主要说一下这个。说到文件自然就是读和写了,所以全篇按照这个来写。
一、读和写文件的共同之处
1、读和写操作都依赖open函数,根据open函数的第二个参数来决定是读操作还是写操作,当第二个参数都是一个字母时,第二个字母默认时t,也就是当第二个参数时r、a、w时打开文件格式默认时文本格式。
2、读和写操作完成后都需要使用close()函数将其关闭,这里的原因相信知道流的人很明白,如果不关闭不能对相同文件再打开进行其他操作,在python这种问题最常见的就是如果写操作打开了文件创建了流,没有关闭,在做写操作的时候打开文件会报错。
3、读和写操作的写法有两种:
第一种with as写法,这种写法理解起来其实和oracle中的with as 语句一样其实就是起别名,例子如下:
with open('1.txt','rt') as file: content = file.read() file.close()
第二种常规写法,这种写法就是不起别名直接将open函数返回的对象赋值给变量,例子如下:
file = open('1.txt','rt') content = file.read() file.close
两种写法其实基本是一样的,就是在是否创建变量这点上有点不同,下面的内容就在这些共同点的基础上说了,写法我会使用第一种写法,请大家作为参考。
二、读文件
如一中所说,文件的读操作和写操作由open函数的第二个参数决定,那就再这里说一下这个open函数,这个函数的参数常用的有两个,就是第一个和第二个,第一个是文件的路径及文件名比如r‘c:\1.txt’这样很好理解,那么我来说说第二个,第二个参数可以是两个字母构成也可以是一个字母构成,那我先说两个的,第一个字母可以是r、a、w,第二个字母可以是t、b,那我分别说说代表什么。
r:读文件 a:在文件末尾开始写文件 w:在文件的开头写文件 t:表示以文本文件格式打开文件 b:表示以二进制格式打开文件
那么对于读文件来说第二个参数就有rt、rb两种分别表示以二进制格式打开文件用于读取和以文本格式打开文件用于读取。写法如上面方法二的例子写法一样。
下面说说读文件的一些操作吧,使用open函数打开文件后,可以使用read()函数和readlines()函数,read读取文件全部内容返回字符串,readlines读取文件内容返回列表。readlines函数可以让我们对文件中特定行进行操作,以下例子是对文件最后一行进行操作。
with open('1.txt','rt') as file: content = file.readlines() print(content[len(content) - 1]) file.close()
三、写文件
如上面所说,写文件时open函数第二个参数就有at、ab、wt、at这几种,含义同上面,分别代表以文本格式打开文件用对在文件末尾写文件,以二进制格式打开文件用对在文件末尾写文件,以文本格式打开文件用对在文件开头写文件,以二进制格式打开文件用对在文件开头写文件。在写文件时就要说到三个函数
-
f.write("hello\n"):向文件中写入数据,如果要写入字符串以外的数据,先将他转换为字符串。
-
f.tell():返回一个整数,表示当前文件指针的位置(就是到文件头的字节数)。
-
f.seek(偏移量,[起始位置]):用来移动文件指针。
- 偏移量: 单位为字节,可正可负
- 起始位置: 0 - 文件头, 默认值; 1 - 当前位置; 2 - 文件尾
例子如下,这个例子是在文件中写入123之后在它的前一行写456:
with open(r'c:\1.txt','at') with file: file.write('123\n') file.seek(-1,file.tell) file.write('456\n') file.close()