目录
❤ 写入空文件(覆盖)
❤ 写入多行
❤ 在原有文件上添加内容
❤ 写入空文件(覆盖)
# coding=UTF-8
filename = 'test_text.txt'
with open(filename, 'w') as file_object:
file_object.write("Add a word")
如果写入文件不存在,open()将自动创建它
如果文件已存在已有内容,会清空再写入
操作系统中的文件默认处于存储状态,读写文件时需要请求操作系统打开一个要在当前程序操作的对象,打开不存在的文件可以创建文件。open()方法通过接收"文件路径"以及“文件打开模式”等参数来打开一个文件,并且返回文件对象。打开后的文件只能在当前程序操作,不能被另一个进程占用。操作之后一定将文件关闭,进程将释放对文件的控制,使文件恢复存储状态,这时,另一个进程将能够操作此文件。
test_test.test
Add a word
open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。其中,file对象使用 open 函数来创建,file对象常用的函数如下:
file.close():关闭文件。关闭后文件不能再进行读写操作。
file.flush():刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
file.fileno():返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
file.isatty():如果文件连接到一个终端设备返回 True,否则返回 False。
file.next():返回文件下一行。
file.read([size]):从文件读取指定的字节数,如果未给定或为负则读取所有。
file.readline([size]):读取整行,包括 "\n" 字符。
file.readlines([sizeint]):读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。
file.seek(offset[, whence]):设置文件当前位置。
file.tell():返回文件当前位置。
file.truncate([size]):截取文件,截取的字节通过size指定,默认为当前文件位置。
file.write(str):将字符串写入文件,返回的是写入的字符长度。
file.writelines(sequence):向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
文件打开模式如下:
t:文本模式 (默认)。
x:写模式,新建一个文件,如果该文件已存在则会报错。
b:二进制模式。
+:打开一个文件进行更新(可读可写)。
U:通用换行模式(不推荐)。
r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+:打开一个文件用于读写。文件指针将会放在文件的开头。
rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
❤ 写入多行
# coding=UTF-8
filename = 'test_text.txt'
with open(filename, 'w') as file_object:
file_object.write("Add a word")
file_object.write("Add two words")
输出:
加换行符
# coding=UTF-8
filename = 'test_text.txt'
with open(filename, 'w') as file_object:
file_object.write("Add a word\n")
file_object.write("Add two words\n")
输出:
Python中写入文件的相关方法:
<file>.write():向文件写入一个字符串或字节流。
<file>.writelines():将一个元素全为字符串的列表写入文件。
<file>.seek(offset):改变当前操作指针的位置,offset的值:
0——文件开头
1——当前位置
2——文件结尾
注意:Python字符串可以是二进制数据,而不是仅仅是文字。write()方法不会在字符串的结尾添加换行符('\n')。
# 第一步:(以只写模式)打开文件
f = open('D:/123.txt', mode='w', encoding='utf-8')
# 第二步:写入文件内容
f.write( "人生若只如初见,何事秋风悲画扇。")
# 第三步:关闭文件
f.close()
输出:
也可以向文件写入一个列表,打印输出结果,如下所示。
f = open('D:/123.txt', mode='w+', encoding='utf-8')
ls=['一本正经','两厢情愿','三顾茅庐','四海为家']
f.writelines(ls)
#写入内容在文件操作指针之前,用seek(0)将文件操作指针返回到文件开始使其顺利向后读入并打印内容,否则打印内容无法显示
f.seek(0)
for line in f:
print(line)
f.close()
❤ 在原有文件上添加内容
用:'a'
# coding=UTF-8
filename = 'test_text.txt'
with open(filename, 'a') as file_object:
file_object.write("lalala\n")
file_object.write("hahaha\n")
输出: