打开文件之后我们得到的是什么?文件的内容,或者什么都没有。当然这是在window的计算机下操作,今天我给同学们带来的就是Python 打开文件之后的操作,Python open方法打开文件。
Python open()方法我们会获取到一个文件对象,之后我们并可以无限的操作文件文档。
open()方法
用法: open(file,mode='r') 文件名(file),模式(mode)
完整语法
open(file,mode='r',buffering = -1,encoding = None,error=None,newLine=None,closefd=True,opener=None)
参数说明:
file: 文件路径(相对或者绝对路径)。
mode: 可选,文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf8
errors: 报错级别
newline: 区分换行符
closefd: 传入的file参数类型
mode 参数有:
t文本模式(一般默认)x写模式,新建一个文件,如果该文件已存在则会报错b二进制模式。+打开一个文件进行更新(可读可写)。U通用换行模式(不推荐)。r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。r+打开一个文件用于读写。文件指针将会放在文件的开头。rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
open打开的时候默认都是 文本模式,如果要打开为二进制模式打开,加上b
文件的打开,是Python是如何打开我们已经知道了方法和open()的好多好吃的模式和参数,接下来我们将进入file对象。
file对象
file.close(); 关闭文件,文件随后不能读取写操作。
file.flush();刷新数据缓冲,把缓冲区的数据立即导入文件中,由被动读取变成主动被读。
file.fileno();返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
file.isatty();如果文件连接一个终端设备返回True,否则返回False
file.next(); 返回下一行;
file.read([size]); 从文件中读取指定的字节数,如果没有给定读取的字节数则默认读取所有。
file.readline([size]); 读取整行,包括换行符。
file.readlines([size]);返回一个列表。
file.seek(offset[, whence]) 设置文件当前位置
file.tell() 返回文件当前位置
file.truncate([size]); 截取文件,截取的字节通过size指定,默认为当前文件位置。
file.write(str) 将字符串写入文件,返回写入的字符长度。
file.writelines(sequence); 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
实列如下
打开文件写入字符串
import os
os.chdir(r"c:userstestdesktop") #改变当前工作目录
fo=open("write1.txt","w") #使用相对路径,在桌面新建文件write1
str="write sentence" #建立字符串
fo.write(str) #将字符串写入
print(fo.name) #获取文件名
fo.close() #关闭文件
从一个打开的文件中读取size个字符,默认读取全部
import os
os.chdir(r"c:userstestdesktop") #改变当前工作目录
fo=open("write1.txt","w+") #使用相对路径,在桌面新建文件write1
print(fo.read())
fo.close()
读取所有行并返回列表
import os
fo=open(r"C:UserstestDesktopwrite2.txt","r")
for line in fo.readlines():
print(line)
fo.close()