Python中的文件是对象。
通过open() 打开一个文件,获取一个文件对象,然后对文件进行读写操作,如下示例。
# 读写打开一个UTF-8编码格式文件,如果文件不存在则创建file= open(r'F:.txt', mode='w+', encoding='UTF-8')# open()打开一个文件,返回一个文件对象file.write('Hello! Woodman') # 写入文件file.seek(0) # 光标移动到文件开头file_content = file.read() # 读取整个文件内容print(file_content)file.close() # 关闭文件
一、open()打开文件获取文件对象
open() 函数参数说明
open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
open()函数用于打开一个文件,创建一个 file 对象,改对象的相关的方法才可以被调用对文件进行读写。
file 文件的路径,需要带上文件名包括文件后缀(c:\1.txt)
mode 打开的方式(r,w,a,x,b,t,r+,w+,a+,U)
buffering 缓冲的buffering大小, 0,就不会有寄存。1,寄存行。大于 1 的整数,寄存区的缓冲大小。负值,寄存区的缓冲大小为系统默认。
encoding 文件的编码格式(utf-8,GBK等)
常用文件的打开模式(完整列表见附件)
r 以只读方式打开文件。文件的指针会放在文件的开头。
w 以写入方式打开文件。文件存在覆盖文件,文件不存在创建一个新文件。
a 以追加方式打开文件。如果文件已存在,文件指针放在文件末尾。如果文件不存在,创建新文件并可写入。
r+ 打开一个文件用于读写。文件指针会放在文件的开头
w+ 打开一个文件用于读写。文件存在覆盖文件,文件不存在创建一个新文件。
a+ 打开一个文件用于读写。如果文件已存在,文件指针放在文件末尾。如果文件不存在,创建新文件并可写入。
记忆方法:记住r读,w写,a追加,每个模式后加入+号就变成可读写。
file= open(r'F:.txt', mode='w', encoding='UTF-8')
二、文件的读取与写入
文件读取:
file.read([size]):读取文件(读取size个字节,默认读取全部)file.readline()):读取一行file.readlines():读取完整的文件,返回每一行所组成的列表
本地目录新建一个文件woodman.txt,文件内容如图:
示例:
file = open('woodman.txt', encoding='utf-8')print(file.read(18)) # 读取18个字符,注意中文字符一个字为1个字符print('-------')print(file.read()) # 读取剩下的所有的文本,光标位置在上次读取结束的位置print('-------')file.seek(0,0) # 移动光标到文件开头print(file.readline()) # 读取一行print('-------')file.seek(0,0) # 移动光标到文件开头print(file.readlines()) # 读取文件,返回每一行所组成的列表file.close() # 关闭文件
输出结果:
Hello, woodman.你好-------!木头人。朋友们,大家好。-------Hello, woodman.-------['Hello, woodman. ', '你好!木头人。 ', '朋友们,大家好。']
注意:文件读取后光标停止在读取结束的位置,file.seek(size) 将光标指针移动到文件的size位置。
文件写入:
file.write(str):将字符串写入文件
file.writelines(lines):将多行文本写入文件中,lines为字符串组成的列表或元组
示例:
file = open('write_woodman.txt', mode='w', encoding='utf-8')file.write('hello, woodman') # 写入文件, 转义字符换行file.write(' ------------------ ')str1 = '''你好!我是木头人。'''file.write(str1) # str1文本块写入文件,会安装文本块的格式file.write(' ------------------ ')list1 = ['Python', '是一门解释型语言 ', 'python非常简单']file.writelines(list1) # 写入列表数据file.close() # 关闭文件
运行程序后文件内容:
hello,woodman------------------你好!我是木头人。------------------Python是一门解释型语言python非常简单
文件对象的其他方法:
file.seek(偏移量,[起始位置]): 用来移动文件指针.
偏移量:单位:比特,可正可负
起始位置:0-文件头部,默认值;1-当前位置;2-文件结尾
file.tell():返回一个整数,表示当前文件指针的位置(就是到文件头的比特数)
file.close(): 关闭文件
附件: