Python中的文件是对象。

通过 open()  打开一个文件,获取一个文件对象,然后对文件进行读写操作,如下示例。

# 读写打开一个UTF-8编码格式文件,如果文件不存在则创建
file= open(r'F:\1.txt', mode='w+', encoding='UTF-8')# open()打开一个文件,返回一个文件对象
file.write('Hello!\word')  # 写入文件
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)。

buffering 缓冲的buffering大小, 0,就不会有寄存。1,寄存行。大于 1 的整数,寄存区的缓冲大小。负值,寄存区的缓冲大小为系统默认。

encoding 文件的编码格式(utf-8,GBK等)

常用文件的不同打开模式(完整列表见附件)

r 以只读方式打开文件。文件的指针会放在文件的开头。

w 以写入方式打开文件。文件存在覆盖文件,文件不存在创建一个新文件。

a 以追加方式打开文件。如果文件已存在,文件指针放在文件末尾。如果文件不存在,创建新文件并可写入。

r+ 打开一个文件用于读写。文件指针会放在文件的开头

w+ 打开一个文件用于读写。文件存在覆盖文件,文件不存在创建一个新文件。

a+ 打开一个文件用于读写。如果文件已存在,文件指针放在文件末尾。如果文件不存在,创建新文件并可写入。

记忆方法:记住 r读,w写,a追加,每个模式后加入+号就变成可读写。

file= open(r'F:\1.txt', mode='w', encoding='UTF-8')

二、文件的读取与写入

文件读取 read():

read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

语法:

file.read([size]):读取文件(读取size个字符,默认读取全部)
file.readline()):读取一行
file.readlines():读取完整的文件,返回每一行所组成的列表

示例:

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.\n', '朋友们,大家好。']

注意:文件读取后光标停止在读取结束的位置,file.seek(size) 将光标指针移动到文件的size位置。

文件写入write():

write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

write()方法不会在字符串的结尾添加换行符('\n'):

语法:

file.write(str):将字符串写入文件

file.writelines(lines):将多行文本写入文件中,lines为字符串组成的列表或元组。

示例:

file = open('write_woodman.txt', mode='w', encoding='utf-8')
file.write('hello,\nwoodman')  # 写入文件,\n 转义字符换行
file.write('\n------------------\n')
str1 = '''你好!'''
file.write(str1)  # str1文本块写入文件,会安装文本块的格式
file.write('\n------------------\n')
list1 = ['Python', '是一门解释型语言\n', 'python非常简单']
file.writelines(list1)  # 写入列表数据
file.close() # 关闭文件

运行程序后文件内容:

hello,
woodman
------------------
你好!
------------------
Python是一门解释型语言
python非常简单

文件对象的其他方法:

file.seek(偏移量,[起始位置]):用来移动文件指针.

偏移量:单位:比特,可正可负

起始位置:0-文件头部,默认值;1-当前位置;2-文件结尾

file.tell():返回一个整数,表示当前文件指针的位置(就是到文件头的比特数)

file.close():关闭文件

附件:

模式

描述

t

文本模式 (默认)。

x

写模式,新建一个文件,如果该文件已存在则会报错。

b

二进制模式。

+

打开一个文件进行更新(可读可写)。

U

通用换行模式(不推荐)。

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

csv python 的读写 python中csv文件读取与写入_csv python 的读写