标签:readlines 绝对路径 内存 句柄 方法 with open mod mode info
1、打开文件:
open函数最常用的使用方法如下:文件句柄 = open(‘文件路径‘, ‘模式‘,编码方式)。 encode=‘‘
1、关于文件路径
#文件路径:
主要有两种,一种是使用相对路径,想上面的例子就是使用相对路径。
另外一种就是绝对路径, 如:C:/Users/Desktop/python/test.txt‘
2、读取文件:
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。(只读模式)指针在开头 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 (只读模式) 指针在开头 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 (读写模式)指针在开头 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。(删除原内容,写入,文件不存在就创建)指针在开头 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。指针在开头 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
# test.txt原文 :python,is,on,the,way
# 只读
f=open(‘test.txt‘,‘r‘)
print(f.read())# 输出 python,is,on,the,way# 读写
#读写
# 先写再度 f=open(‘test.txt‘,‘r+‘) f.write(‘java‘) print(f.read()) #on,is,on, the, way f.close() 文本内容:# javaon,is,on,the,way 首先,以r 方式打开光标都会在最开始的位置,这时候执行f.write(‘java‘), 这时候就把原来的pyth 紧接着进行print(f.read())。就会把后面剩下的文本内容打印出来。所以输出就是:on,is,on, the, way 整个程序完成后, 整个文本内容就成了javaon,is,on,the,way (光标!!) 写入的光标依据输入字符串的长度往后移动,,空格,逗号等符号也算!被取代
python,is,on,the,way
当写入 java1234
最后文本中为 java1234s,on,the,way
#----------------------------------------------
#先读再写
f=open(‘test.txt‘,‘r+‘)
f.read()
f.write("java1234")
f.write("aa")
f.write("bb")
f.write("cc")
f.write("dd")
先读再写的结果: python,is,on,the,wayjava1234aabbccdd
先读再写就是往读的后面依次添加,先写再度就是在文本最开始位置依次添加。
循环文件: f = open("text.txt",‘r‘,encoding="utf-8") for line in f: print(line) f.close() 就是输出文件的内容
3、关闭文件:
而且还可能导致其他不安全隐患。还有一种方法可以让我们不用去特意关注关闭文件。那就是 with open()
with open(‘test.txt‘,‘a+‘) as f: f.write(‘123‘) print(f.readable())
# ----------------------------------------------------------------------- 读取文件的三种操作 1、read() #一次性读取文本中全部的内容,以字符串的形式返回结果
特点是:读取整个文件,将文件内容放到一个字符串变量中。劣势是:如果文件非常大,尤其是大于内存时,无法使用read()方法。read()直接读取字节到字符串中,包括了换行符
2、readline() #只读取每次读取第一行的内容,以字符串的形式返回结果 3、readlines() #读取文本所有内容,并且以列表的格式返回结果,一般配合for in使用
#--------------------------------------------------------------------------------
text = file.read() # 结果为str类型
read()、.readline() 和 .readlines()。每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。
# 写入
# test.txt原文 :python,is,on,the,way
f=open(‘test.txt‘,‘r+‘)
# 前面加 r
print(f.read())
f.write(r‘this\nis\nhaiku‘) #write(string)
print(f.read()) >>输出
python,is,on,the,way
this\nis\nhaiku
# 不加 r
输出:
python,is,on,the,way
this
is
haiku
还有write、writelines方法,用法与上述方法对应类似,只不过write写入的对象时字符串(str),writelines写入的是列表(list),即:
obj.write(str)
obj.writelines(sequence)
# writelines(list)
list02 = ["11","test","hehe","44","55"]
obj.writelines(list02)
四、 常见的mode取值组合
1、r或rt 默认模式,文本模式读
2、rb 二进制文件
3、w或wt 文本模式写,打开前文件存储被清空
4、wb 二进制写,文件存储同样被清空
5、a 追加模式,只能写在文件末尾
6、a+ 可读写模式,写只能写在文件末尾
7、w+ 可读写,与a+的区别是要清空文件内容
8、r+ 可读写,与a+的区别是可以写到文件任何位置
标签:readlines 绝对路径 内存 句柄 方法 with open mod mode info
原文地址:https://www.cnblogs.com/foremostxl/p/9450820.html