Python 官方文档:入门教程 => 点击学习
一、python可以在不导入任何模块的情况下对文件完成读、写、追加,替换(稍复杂)。二、打开文件: 1、f = open('text.txt') 这种方式打开,操作完后需要使用f.colse()关闭。
一、python可以在不导入任何模块的情况下对文件完成读、写、追加,替换(稍复杂)。
二、打开文件:
1、f = open('text.txt')
这种方式打开,操作完后需要使用f.colse()关闭。
2、with open('text.txt') as f:
这种方式打开,运行完系统自动关闭,回收内存。建议使用。
三、文件打开模式:
Python操作文件的时候,默认是只读的,需要指定各种模式才能进行相应的操作,模式列表:
r | 以只读方式打开文件 | r+ | 先读,再写模式 |
rb | 以二进制格式只读打开,图片,视频等文件 | rb+ | 二进制格式,先读再写 |
a | 以追加格式打开f.write(),在最后一行追加,文件不存在,创建文件。 | a+ | 以读写格式打开f.write(),在最后一行追加,文件不存在,创建文件。 |
ab | 和a区别于,二进制 | ab+ | 和ab区别于,二进制 |
w | 写模式创建新文件,覆盖原文件,不可读 | w+ | 写读模式,先写再读,创建新文件,覆盖原文件 |
wb | 和w区别于,二进制 | wb+ | 和wb区别于,二进制 |
四、文件的常用方法:
f.read(num) | 默认读取整个文件,num可以设置设取的数据的大小(英文字符个数) |
f.readlines(num) | 默认读取整个文件,并以行为分隔符,返回值是一个列表,每行为一个元素 |
f.readline(num) | 每次运行读取一行,最节省空间 |
f.write(str) | 向文件写入数据,str必须是字符串类型。 |
f.tell() | 显示当前指针位置,使用next()方法时不能使用tell() |
f.seek(num) | 设置指针位置,f.seek(0)文件开始, |
f.flush() | 强制把内存数据写入到文件。默认程序运行结束才写入 |
next(f) | 逐行读取文件,f是打开的文件对象,不能与tell()同时用,一般迭代器用 print(read_file.tell()) |
f.close() | 关闭打开的文件,清除内存 |
例子1:
#假设文件test.txt内容如下
'''
0=000
1=100
2=200
3=300
4=400
5=500
6=600
7=700
8=800
'''
#1# 最省空间,最快的读取方式
# read_file.readline(),每运行一次,自动读取下一行
with open('file_text1.text', 'r') as read_file:
f = read_file.readline()
while f: # 在条件判断中,None和False都是False,其余为True,欢迎补充
print(f, end='')
f = read_file.readline()
# 注意end,因为readline()读取包含换行符,print默认也加空行符,所以会出现空一行
#2# 其它方法组合操作
with open('file_text1.text', 'r') as read_file:
f = read_file.read(5)
print(f) # 运行结果是0=000
print(read_file.tell()) # 当前位置是5
read_file.seek(22) # 将指针移动到22
print(read_file.readlines())# '=300\n' 从位置22开始以行为元素,组成一个列表
例子2:
正常情况下,文件正常关闭时才把内存文件写入,使用flush()可以把立即写入文件。
使用with语句,只要跳出语句块,自动关闭文件。
# input在with里面
d = {}
with open('file_text1.txt', 'w') as file:
for i in range(20):
file.write(str(i) + '=' + str(i)+'00\n')
s=input('-----停止!文件未关闭,找不到file_text1.txt-----:')
# 把input移动到with外面
d = {}
with open('file_text1.txt', 'w') as file:
for i in range(20):
file.write(str(i) + '=' + str(i)+'00\n')
s=input('-----停止!文件正常关闭,可以找到file_text1.txt-----:')
# 使用flush(),可以打开'file_text1.txt',每行都会立即写入
d = {}
with open('file_text1.txt', 'w') as file:
for i in range(20):
file.write(str(i) + '=' + str(i)+'00\n')
file.flush()
s=input('-----停止!有文件,有内容-----:')
例子3:
修改文件:
文件只有读,写,追加,没有修改方法。
如果要修改只能读取到内存修改再覆盖回去。
对于大文件,这种方法十分占内存,可能会造成死机。
所以,按行读取,修改后存入临时文件,是一个好方法!
temp_file, source_file = 'temp_info.txt', 'info.txt'
# 同时打开两个文件
with open(temp_file, 'w', encoding='utf-8') as temp_file_write,\
open(source_file, 'r', encoding='utf-8') as file_read:
file_read_line = file_read.readline()
while file_read_line:
temp_file_write.write(file_read_line)
file_read_line = file_read.readline()
# 然后再把上面的temp_file和suorce_file换个位置,写回去就好了,是不是发现点什么?仔细思考吧:)
--结束END--
本文标题: Python基础:文件的操作
本文链接: https://www.lsjlt.com/news/191151.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0